8.String類常用方法

String類常識

后面的部分栗子基于這三個對象

String str1 = "You know, that's very funny!";
String str2 = "From Now On, I Will learn Java hardly,you know, That's must be!";
char[] fromChar = {'a', 'b', 'c'};
  • 字符串的常量池:程序中直接用雙引號的字符串毅否,存放在字符串常量池中的,下面的same1署照,same2指向的地址一樣功戚,單例模式
String same1 = "abc";
String same2 = "abc";
String isSame = new String(fromChar);

System.out.println(same1 == same2); // true
System.out.println("缨该?" + same1 == isSame); // false

01-字符串的常量池.png
  • @構(gòu)造方法
// 1.空內(nèi)容
String newStr1 = new String();
// 2.傳入一個字符數(shù)組
String newStr2 = new String(fromChar);
// 3.傳入一個字節(jié)數(shù)組
byte[] byteChars = {45, 23, 15, 67, 76, 45, 99};
String newStr3 = new String(byteChars);
// 4.直接創(chuàng)建
String newStr = "newStr";
  • 創(chuàng)建格式化字符串 靜態(tài)方法, 下面的語句執(zhí)行效果一致
    1. %nd :整型占位符,n代表總的占位(默認(rèn)左邊補上空格,右對齊别凤,加上-號表示右對齊饰序;當(dāng)長度超過n,這個占位符將失去作用);
    2. %n.mf : 浮點數(shù)占位符,n代表總的占位數(shù)闻妓,m代表小數(shù)占位數(shù)(同上);
    3. %ns : 字符串占位數(shù)(同上)菌羽。
System.out.printf("int: %-5d\ndouble:%6.2f\nString:%10s",34,67.88,"hello men\n");
String fs = String.format("int   :%10d\ndouble:%10.2f\nString:%10s",123,123.44234,"String");
  • 制表符\t,比如打印九九乘法表,末尾加上\t會自動右對齊

一注祖、比較相關(guān)的方法

  • 比較內(nèi)容是否全部相等,推薦:如果一個常量和對象進行比較建議 常量.equals(對象);原因:避免對象出現(xiàn)空指針異常(當(dāng)對象出現(xiàn)指向為null)
boolean eq1 = "abc".equals(str2);
boolean eq2 = str1.equals(str2);
  • 比較內(nèi)容是否相等猾蒂,忽略大小寫,注意是晨,只有英文支持大小寫
boolean eq3 = str1.equalsIgnoreCase(str2);
  • 比較大小肚菠,返回int類型的值,按照字典序進行比較,如果索引相同,如果有下一個索引繼續(xù)比較(ascii值的大小)
String a = "ab";
String b = "aC";
int a1 = a.compareTo(b);
System.out.println(a1); // 31
  • 判斷是否已啥開頭(結(jié)尾)
boolean end0 = "abc123ttr".startsWith("abc");
// 判斷指定位置是否已啥開始
boolean end00 = "abc123ttr".startsWith("123", 3);
// 判斷是否以此后綴結(jié)束
boolean end = "abc123ttr".endsWith("ttr");
  • 判斷是否符合正則表達(dá)式
boolean reg = "abc123".matches("\[abc\]{3}\[0-9\]*");
System.out.println("正則表達(dá)式判斷:" + reg); // true

二罩缴、獲取功能相關(guān)的方法

  • 獲取字符串長度
int len2 = "abc".length();
  • 返回索引處的char值
char char1 = str1.charAt(5);
  • 連接兩個字符串
String con = str1.concat(str2);
  • 通過 + 連接兩個字符串
String str3 = str1 + str2;
  • 獲取一個子串(字符)第一次出現(xiàn)的索引位置
int index = "abc".indexOf('b');
int index2 = "abc".indexOf("bc");
  • 獲取一個子串(字符)從索引位置開始第一次出現(xiàn)的索引位置
int index3 = "abcbc".indexOf('b', 2);
int index4 = "abcbc".indexOf("bc", 2);
  • 獲取一個子串(字符)最后一次出現(xiàn)的索引位置
int index5 = "abc".lastIndexOf('b');
int index6 = "abc".lastIndexOf("bc");
  • 獲取一個子串(字符)最后一次出現(xiàn)的索引位置蚊逢,從指定的索引位置開始反向搜索
int index7 = "abcbc".lastIndexOf('b', 2);
int index8 = "abcbc".lastIndexOf("bc", 2);

三、轉(zhuǎn)換功能相關(guān)的方法

  • 拆分為字符數(shù)組
char[] charArr = "abc123".toCharArray();
  • 返回平臺默認(rèn)編碼對應(yīng)的bytes數(shù)組
byte[] by = "abc".getBytes();
for(byte bb: by)
    System.out.println("bb-> "+bb);
  • 將所有子串轉(zhuǎn)換為另一個子串(或者字符箫章,但是得保證兩個參數(shù)類型一直)
String re  = "abc***1234**".replace("**", "@");
System.out.println("替換:" + re);
  • 正則表達(dá)式匹配替換(正則表達(dá)式底層的算法與編譯器實現(xiàn)的算法有異曲同工之妙)
String res = "abc123&&&&&&&jkhh&&&&".replaceAll("&+", "@");
System.out.println("正則表達(dá)式全部匹配替換:" + res);
  • 正則表達(dá)式匹配替換第一個滿足條件的子串
String res2 = "abc12232&^*(&%$#%8673%%&.".replaceFirst("[0-9]+", "替換了");
System.out.println("正則表達(dá)式匹配第一次" + res2);

四烙荷、分割功能的方法

  • 從索引位置開始截取字符串
String sub1 = "abcd123456".substring(4);

  • 截取一個區(qū)間的字符串,包左不包右(如果參數(shù)一樣集檬寂,截取的為"")
String sub2 = "abc123456".substring(4,5);
System.out.println(sub2);
  • 正則表達(dá)式進行拆分字符串
String regs0 = "黃老邪kdfje834-a8d歐陽鋒ldfjda8d7f983*^%%!段智興fkfasd)((000((洪七公+_++87787655王重陽";
String[] regs1 = regs0.split("[a-zA-Z0-9!@#$%^&*()_+-]+");
  • 正則表達(dá)式分割终抽,限制分割次數(shù)
String[] regs2 = regs0.split("[a-zA-Z0-9!@#$%^&*()_+-]+", 2);
  • 小寫轉(zhuǎn)換,(可以傳入指定規(guī)則 Locale 的實例)
String cha0 = "abc876ABHGd".toLowerCase();
  • 大寫轉(zhuǎn)換桶至,(可以傳入指定規(guī)則 Locale 的實例)
String cha1 = "abc876ABHGd".toUpperCase();

-- 返回字符串的副本昼伴,忽略前導(dǎo)空白和尾部空白

String noSpace = "   a bc d    ".trim();
System.out.println(noSpace);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镣屹,隨后出現(xiàn)的幾起案子圃郊,更是在濱河造成了極大的恐慌,老刑警劉巖女蜈,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件持舆,死亡現(xiàn)場離奇詭異,居然都是意外死亡鞭光,警方通過查閱死者的電腦和手機吏廉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惰许,“玉大人席覆,你說我怎么就攤上這事⌒诼颍” “怎么了佩伤?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晦毙。 經(jīng)常有香客問我生巡,道長,這世上最難降的妖魔是什么见妒? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任孤荣,我火速辦了婚禮埋心,結(jié)果婚禮上含长,老公的妹妹穿的比我還像新娘溜腐。我一直安慰自己鲫寄,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布疯汁。 她就那樣靜靜地躺著牲尺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幌蚊。 梳的紋絲不亂的頭發(fā)上谤碳,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音溢豆,去河邊找鬼蜒简。 笑死,一個胖子當(dāng)著我的面吹牛漩仙,可吹牛的內(nèi)容都是我干的臭蚁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼讯赏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了冷尉?” 一聲冷哼從身側(cè)響起漱挎,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雀哨,沒想到半個月后磕谅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡雾棺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年膊夹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捌浩。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡放刨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尸饺,到底是詐尸還是另有隱情进统,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布浪听,位于F島的核電站螟碎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏迹栓。R本人自食惡果不足惜掉分,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酥郭,春花似錦华坦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至消返,卻和暖如春载弄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撵颊。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工宇攻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倡勇。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓逞刷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親妻熊。 傳聞我的和親對象是個殘疾皇子夸浅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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

  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計...
    子非魚_t_閱讀 4,186評論 1 44
  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,197評論 0 3
  • 睡眠狀況不錯扔役!上班路上繼續(xù)看一九八四帆喇,這兩天應(yīng)該就可以看完了。但是自己這一年來看過的書到底有多少真正被記在腦海里了...
    真晝之月閱讀 54評論 0 0
  • 啊亿胸,可愛的姑娘坯钦,微風(fēng)的手溫柔地?fù)崦隳情L長的、細(xì)細(xì)密密的侈玄、自然地披散在肩上的“秀發(fā)”婉刀,“秀發(fā)”上嫩綠的小葉兒,多像...
    江南央閱讀 1,755評論 114 163
  • 該來的序仙, 總會來突颊, 面對就是。 不該來的诱桂, 也來了洋丐, 面對就是。 人生呀挥等, 該來的與不該來的友绝, 面對就是。
    小劇在成長閱讀 213評論 0 6