Java實例-字符串

1、字符串比較:通過字符串函數(shù) 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()));

}

}

```

輸出結(jié)果:

2涕烧、查找字符串最后一次出現(xiàn)的位置:通過字符串函數(shù) strOrig.lastIndexOf(Stringname) 來查找子字符串 Stringname 在 strOrig 出現(xiàn)的位置。

```

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+"最后出現(xiàn)的位置是"+lastindex);

}

}

```

輸出結(jié)果:

3菜谣、刪除字符串中的一個字符:通過字符串函數(shù) substring() 函數(shù)來刪除字符串中的一個字符,將功能封裝在 removeChar 函數(shù)中晚缩。

```

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);

}

}

```

輸出結(jié)果:

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"));//替換第一次匹配的字符荞彼,基于正則表達(dá)式

? ? ? ? System.out.println("將所有he替換成Hi:"+str.replaceAll("he","Ki"));//替換所有匹配的字符冈敛,基于正則表達(dá)式

? ? }

}

```

輸出結(jié)果:

5、Java 實例 - 字符串反轉(zhuǎn):使用 Java 的反轉(zhuǎn)函數(shù) reverse() 將字符串反轉(zhuǎn)鸣皂。

```

public class String_Reverse {

public String_Reverse(){

String str ="hello";

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

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

System.out.println("反轉(zhuǎn)后的字符串為:"+reverse);

}

}

```

輸出結(jié)果:

6抓谴、Java 實例 - 字符串查找:使用了 String 類的 indexOf() 方法在字符串中查找子字符串出現(xiàn)的位置,如果存在返回字符串出現(xiàn)的位置(第一位為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);

}

}

```

輸出結(jié)果:

不存在字符串


存在字符串

7、Java 實例 - 字符串分割:使用 split(string) 方法通過指定分隔符將字符串分割為數(shù)組荆陆。

```

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);

}

```

輸出結(jié)果:


8滩届、Java 實例 - 字符串分割(StringTokenizer):使用 StringTokennizer 設(shè)置不同分隔符來分隔字符串,默認(rèn)的分隔符是:空格被啼、制表符(\t)帜消、換行符(\n)、回車符(\r)浓体。

```

public class String_Tokenizer {

public String_Tokenizer(){

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

StringTokenizer st1 =new StringTokenizer(str);? ? ? ? ? ? ? //默認(rèn)以空格為分割線

StringTokenizer st2 =new StringTokenizer(str,",");? ? ? ? ?//設(shè)定為以逗號為分割線

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

while(st1.hasMoreElements())

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

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

while (st2.hasMoreElements())

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

}

}

```

輸出結(jié)果:

9泡挺、Java 實例 - 字符串小寫轉(zhuǎn)大寫:使用了String toUpperCase() 方法將字符串從小寫轉(zhuǎn)為大寫。

```


```

輸出結(jié)果:

10汹碱、Java 實例 - 測試兩個字符串區(qū)域是否相等:使用regionMatches() 方法測試兩個字符串區(qū)域是否相等

```

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);

//第一個參數(shù) true 表示忽略大小寫區(qū)別咳促,其余同上

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

System.out.println("區(qū)分大小寫匹配結(jié)果:" + match1);

System.out.println("不區(qū)分大小寫匹配結(jié)果:" + match2);

}

}

```

輸出結(jié)果:

11稚新、Java 實例 - 字符串性能比較測試:通過兩種方式創(chuàng)建字符串,并測試其性能跪腹。

```

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 關(guān)鍵詞創(chuàng)建字符串"

? ? ? ? ? ? ? ? +" : "+ (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 對象創(chuàng)建字符串"

? ? ? ? ? ? ? ? +" : " + (endTime1 - startTime1)

+" 毫秒");

}

}

```

輸出結(jié)果:

12褂删、Java 實例 - 字符串優(yōu)化:通過 String.intern() 方法來優(yōu)化字符串。

```

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 關(guān)鍵字:" + (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");

}

}

```

輸出結(jié)果:

13冲茸、Java 實例 - 字符串格式化:通過 format() 方法來格式化字符串屯阀,或者指定地區(qū)來格式化

```

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)

? ? }

}

```

輸出結(jié)果:

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");

}

}

```

輸出結(jié)果:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钦无,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盖袭,更是在濱河造成了極大的恐慌失暂,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鳄虱,死亡現(xiàn)場離奇詭異弟塞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拙已,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門决记,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倍踪,你說我怎么就攤上這事系宫。” “怎么了建车?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵笙瑟,是天一觀的道長。 經(jīng)常有香客問我癞志,道長,這世上最難降的妖魔是什么框产? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任凄杯,我火速辦了婚禮,結(jié)果婚禮上秉宿,老公的妹妹穿的比我還像新娘戒突。我一直安慰自己,他們只是感情好描睦,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布膊存。 她就那樣靜靜地躺著,像睡著了一般忱叭。 火紅的嫁衣襯著肌膚如雪隔崎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天韵丑,我揣著相機(jī)與錄音爵卒,去河邊找鬼。 笑死撵彻,一個胖子當(dāng)著我的面吹牛钓株,可吹牛的內(nèi)容都是我干的实牡。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼轴合,長吁一口氣:“原來是場噩夢啊……” “哼创坞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起受葛,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤题涨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后奔坟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體携栋,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年咳秉,在試婚紗的時候發(fā)現(xiàn)自己被綠了婉支。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡澜建,死狀恐怖向挖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炕舵,我是刑警寧澤何之,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站咽筋,受9級特大地震影響溶推,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奸攻,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一蒜危、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧睹耐,春花似錦辐赞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至窖梁,卻和暖如春赘风,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纵刘。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工贝次, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彰导。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓蛔翅,卻偏偏與公主長得像敲茄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子山析,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 本文是我自己在秋招復(fù)習(xí)時的讀書筆記堰燎,整理的知識點,也是為了防止忘記笋轨,尊重勞動成果秆剪,轉(zhuǎn)載注明出處哦!如果你也喜歡爵政,那...
    波波波先森閱讀 828評論 1 6
  • package cn.itcast_01;/* 字符串:就是由多個字符組成的一串?dāng)?shù)據(jù)仅讽。也可以看成是一個字符數(shù)組。 ...
    蛋炒飯_By閱讀 582評論 0 0
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子钾挟,從出生后第3個月起每個月都生一對兔子洁灵,小兔子...
    趙宇_阿特奇閱讀 1,852評論 0 2
  • 50道經(jīng)典Java編程練習(xí)題,將數(shù)學(xué)思維運用到編程中來掺出。抱歉哈找不到文章的原貼了徽千,有冒犯的麻煩知會聲哈~ 1.指數(shù)...
    OSET我要編程閱讀 6,952評論 0 9
  • 真正的把握住機(jī)會,是遇到機(jī)會就拼命爭取汤锨,無論成敗双抽。 為什么說無論成敗,我們都要去爭取機(jī)會呢闲礼?因為我們要清楚的意識到...
    小甜心蝎子閱讀 291評論 0 2