Java实例-字符串

1、字符串比较:通过字符串函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) 来比较两个字符串,并返回字符串中第一个字母ASCII的差值。

```

public class String_Compare {

public String_Compare(){

String str1 ="Hello";

String str2 ="hello";

Object obj = str2;

System.out.println(str1.compareTo(str2));

System.out.println(str1.compareToIgnoreCase(str2));    //忽略大小写

System.out.println(str1.compareTo(obj.toString()));

}

}

```

输出结果:

2、查找字符串最后一次出现的位置:通过字符串函数 strOrig.lastIndexOf(Stringname) 来查找子字符串 Stringname 在 strOrig 出现的位置。

```

public class String_SearchLast {

public String_SearchLast(){

String str ="Hello hello";

String search ="ll";                       //输入需要查找的字符串

int lastindex = str.lastIndexOf(search);     //该类的主要方法

if (lastindex==-1)

System.out.println("没有找到字符串"+search);

else

System.out.println("字符串"+search+"最后出现的位置是"+lastindex);

}

}

```

输出结果:

3、删除字符串中的一个字符:通过字符串函数 substring() 函数来删除字符串中的一个字符,将功能封装在 removeChar 函数中。

```

public class String_Deletechar {

public String_Deletechar(){

String str ="hello";

System.out.println("原字符串:"+str);

System.out.println("删除字符后:"+removeChar(str,3));

}

public static String removeChar(String str,int pos){    //编写删除字符方法

        return str.substring(0,pos) +str.substring(pos+1);

}

}

```

输出结果:

4、Java 实例 - 字符串替换:使用 java String 类的 replace 方法来替换字符串中的字符。

```

public class String_Replace {

public String_Replace(){

String str ="hello,hello";

System.out.println("原字符串为:"+str);

System.out.println("将所有e替换成i:"+str.replace('e','i'));//替换所有匹配的字符

        System.out.println("将第一个he替换成Ki:"+str.replaceFirst("he","ki"));//替换第一次匹配的字符,基于正则表达式

        System.out.println("将所有he替换成Hi:"+str.replaceAll("he","Ki"));//替换所有匹配的字符,基于正则表达式

    }

}

```

输出结果:

5、Java 实例 - 字符串反转:使用 Java 的反转函数 reverse() 将字符串反转。

```

public class String_Reverse {

public String_Reverse(){

String str ="hello";

String reverse =new StringBuffer(str).reverse().toString();

System.out.println("原字符串为:"+str);

System.out.println("反转后的字符串为:"+reverse);

}

}

```

输出结果:

6、Java 实例 - 字符串查找:使用了 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置,如果存在返回字符串出现的位置(第一位为0),不存在返回 -1。

```

public class String_Search {

public String_Search(){

String str ="hello,hello";

String seach ="age";//需要查找的字符串

int intIndex = str.indexOf(seach);

System.out.println("原字符串为:"+str);

if (intIndex==-1)

System.out.println("没有找到字符串"+seach);

else

System.out.println("字符串"+seach+"所在的位置是:"+intIndex);

}

}

```

输出结果:

不存在字符串


存在字符串

7、Java 实例 - 字符串分割:使用 split(string) 方法通过指定分隔符将字符串分割为数组。

```

public class String_Split {

public String_Split(){

String str ="hello!hi";

String []temp;//老师存储字符串分片

String delimeter ="!";//定义分割线

temp = str.split(delimeter);

System.out.println("原字符串为:"+str+"\n从'"+delimeter+"'分割后为:");

for (String s:temp)//for each遍历字符串

            System.out.println(s);

}

```

输出结果:


8、Java 实例 - 字符串分割(StringTokenizer):使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。

```

public class String_Tokenizer {

public String_Tokenizer(){

String str ="1a, 2b, 3c";

StringTokenizer st1 =new StringTokenizer(str);              //默认以空格为分割线

StringTokenizer st2 =new StringTokenizer(str,",");         //设定为以逗号为分割线

System.out.println("按空格分割");

while(st1.hasMoreElements())

System.out.println(st1.nextElement());

System.out.println("按逗号分割");

while (st2.hasMoreElements())

System.out.println(st2.nextElement());

}

}

```

输出结果:

9、Java 实例 - 字符串小写转大写:使用了String toUpperCase() 方法将字符串从小写转为大写。

```


```

输出结果:

10、Java 实例 - 测试两个字符串区域是否相等:使用regionMatches() 方法测试两个字符串区域是否相等

```

public class String_RegionMatch {

public String_RegionMatch(){

String first_str ="Welcome to Microsoft";

String second_str ="I work with microsoft";

boolean match1 = first_str.regionMatches(11, second_str,12,9);

//11是字符串first_str起始匹配位置,12是second_str起始匹配位置,9是匹配长度

        boolean match2 = first_str.regionMatches(true,11, second_str,12,9);

//第一个参数 true 表示忽略大小写区别,其余同上

        System.out.println("字符串1:"+first_str+"\n字符串2:"+second_str);

System.out.println("区分大小写匹配结果:" + match1);

System.out.println("不区分大小写匹配结果:" + match2);

}

}

```

输出结果:

11、Java 实例 - 字符串性能比较测试:通过两种方式创建字符串,并测试其性能。

```

public class String_ComparePerformance {

public String_ComparePerformance(){

long startTime = System.currentTimeMillis();

for(int i=0;i<50000;i++){

String s1 ="hello";

String s2 ="hello";

}

long endTime = System.currentTimeMillis();

System.out.println("通过 String 关键词创建字符串"

                +" : "+ (endTime - startTime)

+" 毫秒" );

long startTime1 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

String s3 =new String("hello");

String s4 =new String("hello");

}

long endTime1 = System.currentTimeMillis();

System.out.println("通过 String 对象创建字符串"

                +" : " + (endTime1 - startTime1)

+" 毫秒");

}

}

```

输出结果:

12、Java 实例 - 字符串优化:通过 String.intern() 方法来优化字符串。

```

public class String_Optimization {

public String_Optimization(){

String variables[] =new String[50000];

for(int i=0;i <50000;i++){

variables[i] ="s"+i;

}

long startTime0 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

variables[i] ="hello";

}

long endTime0 = System.currentTimeMillis();

System.out.println("直接使用字符串: "+ (endTime0 - startTime0)  +" ms" );

long startTime1 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

variables[i] =new String("hello");

}

long endTime1 = System.currentTimeMillis();

System.out.println("使用 new 关键字:" + (endTime1 - startTime1) +" ms");

long startTime2 = System.currentTimeMillis();

for(int i=0;i<50000;i++){

variables[i] =new String("hello");

variables[i] = variables[i].intern();

}

long endTime2 = System.currentTimeMillis();

System.out.println("使用字符串对象的 intern() 方法: "

                + (endTime2 - startTime2)

+" ms");

}

}

```

输出结果:

13、Java 实例 - 字符串格式化:通过 format() 方法来格式化字符串,或者指定地区来格式化

```

public class String_Format {

public String_Format(){

double e = Math.E;

System.out.format("%f%n", e);

System.out.format(Locale.CHINA  ,"%-10.4f%n%n", e);//指定本地为中国(CHINA)

    }

}

```

输出结果:

14、Java 实例 - 连接字符串:通过 "+" 操作符和StringBuffer.append() 方法来连接字符串,并比较其性能。

```

public class String_Concatenate {

public String_Concatenate(){

long startTime = System.currentTimeMillis();

for(int i=0;i<5000;i++){

String result ="This is"

                    +"testing the"

                    +"difference"+"between"

                    +"String"+"and"+"StringBuffer";

}

long endTime = System.currentTimeMillis();

System.out.println("字符串连接"

                +" - 使用 + 操作符 : "

                + (endTime - startTime)+" ms");

long startTime1 = System.currentTimeMillis();

for(int i=0;i<5000;i++){

StringBuffer result =new StringBuffer();

result.append("This is");

result.append("testing the");

result.append("difference");

result.append("between");

result.append("String");

result.append("and");

result.append("StringBuffer");

}

long endTime1 = System.currentTimeMillis();

System.out.println("字符串连接"

                +" - 使用 StringBuffer : "

                + (endTime1 - startTime1)+" ms");

}

}

```

输出结果:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容