字符串(String)常用方法

String

實(shí)際上字符串在String內(nèi)部是通過一個(gè)char[]數(shù)組表示的敏簿。因此得湘,按下面的寫法也是可以的:

String s2 = new String(new char[] {'H', 'e', 'l', 'l', 'o', '!'});

Java字符串的一個(gè)重要特點(diǎn)就是字符串不可變募狂。這種不可變性是通過內(nèi)部的private final char[]字段,以及沒有任何修改char[]的方法實(shí)現(xiàn)的诞帐。


字符串比較

Java編譯器在編譯期欣尼,會(huì)自動(dòng)把所有相同的字符串當(dāng)作一個(gè)對(duì)象放入常量,自然引用也是相同的停蕉。(所以愕鼓,使用==有時(shí)候相等完全是巧合)。

兩個(gè)字符串比較慧起,必須總是使用equals()方法菇晃。

要忽略大小寫比較,使用equalsIgnoreCase()方法蚓挤。


搜索子串和提取子串

搜索子串的更多的例子:

"Hello".indexOf("l"); // 2
"Hello".lastIndexOf("l"); // 3
"Hello".startsWith("He"); // true
"Hello".endsWith("lo"); // true

提取子串的例子:

"Hello".substring(2); // "llo"
"Hello".substring(2, 4); "ll"

去除首尾空白字符

trim()

使用trim()方法可以移除字符串首尾空白字符磺送。空白字符包括空格屈尼,\t册着,\r拴孤,\n脾歧。

注意:trim()并沒有改變字符串的內(nèi)容,而是返回了一個(gè)新字符串演熟。

"  \tHello\r\n ".trim(); // "Hello"

strip()

另一個(gè)strip()方法也可以移除字符串首尾空白字符鞭执。它和trim()不同的是,類似中文的空格字符\u3000也會(huì)被移除.

"\u3000Hello\u3000".strip(); // "Hello"
" Hello ".stripLeading(); // "Hello "
" Hello ".stripTrailing(); // " Hello"

判斷字符串空和空白字符串

isEmpty()isBlank()來判斷字符串是否為空和空白字符串芒粹。

"".isEmpty(); // true兄纺,因?yàn)樽址L(zhǎng)度為0
"  ".isEmpty(); // false,因?yàn)樽址L(zhǎng)度不為0
"  \n".isBlank(); // true化漆,因?yàn)橹话瞻鬃址?" Hello ".isBlank(); // false估脆,因?yàn)榘强瞻鬃址?

替換子串

  • 一種是根據(jù)字符或字符串替換:

    String s = "hello";
    s.replace('l', 'w'); // "hewwo",所有字符'l'被替換為'w'
    s.replace("ll", "~~"); // "he~~o"座云,所有子串"ll"被替換為"~~"
    
  • 另一種是通過正則表達(dá)式替換:

    String s = "A,,B;C ,D";
    s.replaceAll("[\\,\\;\\s]+", ","); // "A,B,C,D"
    

分割字符串

要分割字符串疙赠,使用split()方法,并且傳入的也是正則表達(dá)式.

String s = "A,B,C,D";
String[] ss = s.split("\\,"); // {"A", "B", "C", "D"}

拼接字符串

拼接字符串使用靜態(tài)方法join()朦拖,它用指定的字符串連接字符串?dāng)?shù)組:

String[] arr = {"A", "B", "C"};
String s = String.join("***", arr); // "A***B***C"

類型轉(zhuǎn)換

要把任意基本類型或引用類型轉(zhuǎn)換為字符串圃阳,可以使用靜態(tài)方法valueOf()。這是一個(gè)重載方法璧帝,編譯器會(huì)根據(jù)參數(shù)自動(dòng)選擇合適的方法:

String.valueOf(123); // "123"
String.valueOf(45.67); // "45.67"
String.valueOf(true); // "true"
String.valueOf(new Object()); // 類似java.lang.Object@636be97c

要把字符串轉(zhuǎn)換為其他類型捍岳,就需要根據(jù)情況。

  1. 字符串轉(zhuǎn)換為int類型

    int n1 = Integer.parseInt("123"); // 123
    int n2 = Integer.parseInt("ff", 16); // 按十六進(jìn)制轉(zhuǎn)換,255
    
  2. 字符串轉(zhuǎn)換為boolean類型

    boolean b1 = Boolean.parseBoolean("true"); // true
    boolean b2 = Boolean.parseBoolean("FALSE"); // false
    
  3. Stringchar[]類型可以互相轉(zhuǎn)換

    char[] cs = "Hello".toCharArray(); // String -> char[]
    String s = new String(cs); // char[] -> String
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锣夹,一起剝皮案震驚了整個(gè)濱河市页徐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌银萍,老刑警劉巖泞坦,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異砖顷,居然都是意外死亡贰锁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門滤蝠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豌熄,“玉大人,你說我怎么就攤上這事物咳÷嘞眨” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵览闰,是天一觀的道長(zhǎng)芯肤。 經(jīng)常有香客問我,道長(zhǎng)压鉴,這世上最難降的妖魔是什么崖咨? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮油吭,結(jié)果婚禮上击蹲,老公的妹妹穿的比我還像新娘。我一直安慰自己婉宰,他們只是感情好歌豺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著心包,像睡著了一般类咧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蟹腾,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天痕惋,我揣著相機(jī)與錄音,去河邊找鬼岭佳。 笑死血巍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的珊随。 我是一名探鬼主播述寡,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柿隙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了鲫凶?” 一聲冷哼從身側(cè)響起禀崖,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎螟炫,沒想到半個(gè)月后波附,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昼钻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年掸屡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片然评。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仅财,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碗淌,到底是詐尸還是另有隱情盏求,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布亿眠,位于F島的核電站碎罚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纳像。R本人自食惡果不足惜轻黑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一椭岩、第九天 我趴在偏房一處隱蔽的房頂上張望男公。 院中可真熱鬧艾岂,春花似錦、人聲如沸潭兽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)山卦。三九已至,卻和暖如春诵次,著一層夾襖步出監(jiān)牢的瞬間账蓉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工逾一, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铸本,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓遵堵,卻偏偏與公主長(zhǎng)得像箱玷,于是被迫代替她去往敵國(guó)和親怨规。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

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

  • java中String的常用方法 1锡足、length()字符串的長(zhǎng)度 例:char chars[]={'a','b'...
    赤赤有名閱讀 2,053評(píng)論 0 10
  • package cn.itcast_01;/* 字符串:就是由多個(gè)字符組成的一串?dāng)?shù)據(jù)波丰。也可以看成是一個(gè)字符數(shù)組。 ...
    蛋炒飯_By閱讀 589評(píng)論 0 0
  • String類和正則表達(dá)式 今天的主要內(nèi)容 Scanner類概述Scanner獲取數(shù)據(jù)出現(xiàn)的小問題及解決方案 St...
    須臾之北閱讀 1,932評(píng)論 0 3
  • 《Java從小白到大牛》紙質(zhì)版已經(jīng)上架了c迮H移铩! 由字符組成的一串字符序列九孩,稱為“字符串”惧磺,在前面的章節(jié)中也多次用到...
    tony關(guān)東升閱讀 812評(píng)論 0 2
  • 這部電影對(duì)奧黛麗?赫本影響之大,難于言說捻撑,也許是對(duì)她而言磨隘,最重要的一部作品吧。因?yàn)楹毡竞吐芳有夼呛隙橐坏墓嘶迹齻?..
    霍甜閱讀 724評(píng)論 0 3