1. 主页 > 大智慧

Java String常用方法详解:从入门到实战应用

"鍝庢垜璇达紝Java閲岀殑String鍒板簳鏈夊灏戠鐜╂硶锛熶负浠€涔堥殧澹佽€佺帇鎬昏'鎼炴噦String灏辫兘瑙e喅80%鐨勫瓧绗︿覆闂'锛? 浠婂ぉ鍜变滑灏辨潵鍞犲敔杩欎釜鐪嬩技绠€鍗曞嵈鏆楄棌鐜勬満鐨凷tring瀵硅薄锛屼繚璇佽浣犱粠涓€鑴告嚨閫煎埌璞佺劧寮€鏈楋紒


涓€銆佸厛鏁存槑鐧斤細String鍒板簳鏄釜鍟ョ帺鎰忓効锛?/h3>

锛堣繖閲屽亣瑁呮湁鍒嗗壊绾匡紝鎵嬪姩绌鸿锛?/p>

鍒氬叆闂ㄧ殑灏忕櫧鑲畾瑕侀棶锛?String涓嶅氨鏄瓨鏂囧瓧鐨勫悧锛? 璇濇槸娌¢敊锛屼絾浣犵煡閬揓ava铏氭嫙鏈猴紙JVM锛変负浜嗗鐞嗗瓧绗︿覆鎼炰簡澶氬皯灏忓姩浣滃悧锛熶妇涓牀瀛愷煂帮細

java澶嶅埗
String s1 = "hello";  // 鐩存帴鎵旇繘甯搁噺姹?/span>
String s2 = new String("hello");  // 鍦ㄥ爢閲屾柊寤轰簡涓獫

杩欎咯鐪嬬潃閮芥槸"hello"锛屼絾鈥?strong>鈥嬪唴瀛樺湴鍧€瀹屽叏涓嶅悓鈥?/strong>鈥嬶紒鍓嶈€呮槸JVM鍋锋噿閲嶅鍒╃敤鐨勶紝鍚庤€呮槸瀹炴墦瀹炴柊寤虹殑瀵硅薄銆傝繖鐭ヨ瘑鐐硅€冭瘯蹇呰€冿紝闈㈣瘯蹇呴棶锛岃鐗簡锛?/p>

锛堟彃鍏ヨ嚜闂嚜绛旓級鏈変汉瑕侀棶锛?閭f棩甯稿紑鍙戠敤鍝濂斤紵" 涓汉寤鸿鑳界敤瀛楅潰閲忓氨鍒玭ew瀵硅薄锛岀渷鍐呭瓨涓嶈锛岃繕鑳介伩鍏嶅緢澶氬潙銆備笉淇′綘璇曡瘯姣旇緝杩欎袱涓璞$殑鍦板潃锛?/p>

java澶嶅埗
System.out.println(s1 == s2);  // 杈撳嚭false
System.out.println(s1.equals(s2));  // 杈撳嚭true

浜屻€佸繀椤绘帉鎻$殑7鎶婄憺澹啗鍒€

锛堝亣瑁呰繖閲屾湁鍒嗗壊绾匡級

  1. 鈥?strong>鈥媗ength()鈥?/strong>鈥嬶細杩欎釜绠€鍗曞埌鐖嗭紝浣嗘柊鎵嬫渶瀹规槗蹇樺啓鎷彿锛佽浣忓畠鏄釜鏂规硶涓嶆槸灞炴€э細
java澶嶅埗
"绋嬪簭鍛樼澶存寚鍗?.length();  // 杈撳嚭6
  1. 鈥?strong>鈥媍harAt()鈥?/strong>鈥嬶細鎯虫媶寮€瀛楃涓茬湅姣忎釜瀛楃锛熺敤瀹冨噯娌¢敊锛?/li>
java澶嶅埗
"ABCDE".charAt(2);  // 杈撳嚭'C'锛堜粠0寮€濮嬫暟锛侊級
  1. 鈥?strong>鈥媠ubstring()鈥?/strong>鈥嬶細鍒掗噸鐐癸紒涓や釜鍙傛暟鐗堟墠鏄帇閬擄細
java澶嶅埗
"2023-08-20".substring(5,7);  // 鎴彇"08"
// 鍙傛暟1鏄紑濮嬬储寮曪紝鍙傛暟2鏄粨鏉熺储寮曪紙涓嶅寘鍚級
  1. 鈥?strong>鈥媔ndexOf()鈥?/strong>鈥嬶細鎵句笢瑗垮繀澶囷紝鎵句笉鍒拌繑鍥?1锛?/li>
java澶嶅埗
"hello".indexOf('l');  // 杈撳嚭2
"浣犲ソ鍛€".indexOf("濂?);  // 杈撳嚭1
  1. 鈥?strong>鈥媠plit()鈥?/strong>鈥嬶細鎷嗗瓧绗︿覆绁炲櫒锛屼絾瑕佹敞鎰忕壒娈婂瓧绗︼細
java澶嶅埗
"寮犱笁,鏉庡洓,鐜嬩簲".split(",");  // 杩斿洖鏁扮粍["寮犱笁","鏉庡洓","鐜嬩簲"]
  1. 鈥?strong>鈥媡rim()鈥?/strong>鈥嬶細涓撴不鐢ㄦ埛杈撳叆鐨勫墠鍚庣┖鏍硷細
java澶嶅埗
"  鎴戞湁寰堝绌烘牸  ".trim();  // 鍙樻垚"鎴戞湁寰堝绌烘牸"
  1. 鈥?strong>鈥媏quals()鈥?/strong>鈥嬶細瀛楃涓叉瘮杈冨繀鐢紒鍗冧竾鍒敤==锛?/li>
java澶嶅埗
new String("test").equals("test");  // true
new String("test") == "test";  // false

涓夈€佽繘闃剁帺瀹剁殑楠氭搷浣?/h3>

锛堝亣瑁呰繖閲屾湁鍒嗗壊绾匡級

鈥?strong>鈥嬪満鏅?锛氬瓧绗︿覆鎷兼帴閫夊摢涓紵鈥?/strong>鈥?/p>

鏂规硶閫傜敤鍦烘櫙鍐呭瓨娑堣€?/th>
+鍙锋嫾鎺?/td>绠€鍗曞皯閲忔嫾鎺?/td>楂?/td>
concat()纭畾鏁伴噺鐨勬嫾鎺?/td>涓?/td>
StringBuffer澶氱嚎绋嬬幆澧冧笅鐨勯绻佷慨鏀?/td>浣?/td>
StringBuilder鍗曠嚎绋嬬幆澧冧笅鐨勯绻佷慨鏀?/td>鏈€浣?/td>

涓汉瑙傜偣锛氱幇鍦ㄩ兘2023骞翠簡锛岄櫎闈炴槑纭绾跨▼瀹夊叏锛屽惁鍒欌€?strong>鈥嬫棤鑴戦€塖tringBuilder鈥?/strong>鈥嬪噯娌¢敊銆備絾鍗冧竾鍒湪寰幆閲岀敤+鍙锋嫾鎺ワ紝閭e唴瀛樻秷鑰楄兘鍚撳摥浣狅紒

鈥?strong>鈥嬪満鏅?锛氭牸寮忓寲瀛楃涓茬殑涓夌濮垮娍鈥?/strong>鈥?/p>

java澶嶅埗
// 浼犵粺娲?/span>
String.format("濮撳悕:%s 骞撮緞:%d", "寮犱笁", 25);

// 鏂版疆娲?/span>
"鍦板潃锛?s 鐢佃瘽锛?s".formatted("鍖椾含", "13800138000");

// 鍦熻豹娲撅紙闇€瑕丣DK15+锛?/span>
String html = `
    
        

${title}

`;

鍥涖€佸疄鎴樹腑鐨勮娉暀璁?/h3>

锛堝亣瑁呰繖閲屾湁鍒嗗壊绾匡級

鏈€杩戝府瀛﹀紵debug鍙戠幇涓吀鍨嬮敊璇細

java澶嶅埗
// 閿欒绀鸿寖
String result = "";
for(int i=0; i<10000; i++){
    result += i;  // 姣忔寰幆閮絥ew鏂板璞?/span>
}

// 姝g‘濮垮娍
StringBuilder sb = new StringBuilder();
for(int i=0; i<10000; i++){
    sb.append(i);
}

杩欎箞涓€鏀癸紝鎬ц兘鐩存帴鎻愬崌50鍊嶏紒鎵€浠ュ晩锛屽鐞嗗ぇ閲忓瓧绗︿覆鎿嶄綔鏃讹紝鈥?strong>鈥嬪崈涓囪閫夊宸ュ叿鈥?/strong>鈥嬶紒

杩樻湁涓喎鐭ヨ瘑锛歋tring鐨刪ashCode()浼氱紦瀛樿绠楃粨鏋滐紝绗竴娆¤皟鐢ㄥ悗灏辨妸鍊煎瓨璧锋潵浜嗭紝鍚庨潰璋冪敤鐩存帴杩斿洖缂撳瓨鍊笺€傛墍浠ュ埆鎯崇潃鑷繁閲嶅啓hashCode()鑳芥彁楂樻€ц兘锛屼汉瀹舵棭灏变紭鍖栧埌鏋佽嚧浜嗐€?/p>


浜斻€佷釜浜烘帍蹇冪獫瀛愮殑璇?/h3>

锛堣繖閲岀洿鎺ユ敹灏撅紝涓嶇敤鎬荤粨锛?/p>

鍒氬Java閭d細鍎匡紝鎴戜篃瑙夊緱String绠€鍗曞緱寰堬紝鐩村埌鏈夋闈㈣瘯琚棶"String涓轰粈涔堣璁℃垚涓嶅彲鍙樼殑锛?锛屽綋鍦哄氨鎳典簡銆傚悗鏉ユ墠鏄庣櫧锛岃繖璁捐鏃㈣兘淇濊瘉绾跨▼瀹夊叏锛屽張鑳藉仛瀛楃涓插父閲忔睜浼樺寲锛岃繕鑳介伩鍏嶅畨鍏ㄩ棶棰橈紙姣斿鏁版嵁搴撹繛鎺ュ弬鏁拌绡℃敼锛夈€?/p>

鐜板湪鐪嬫簮鐮佸彂鐜帮紝String绫婚噷閭d釜鈥?strong>鈥媝rivate final char value[]鈥?/strong>鈥嬫墠鏄叧閿€傛墍浠ュ晩锛岀悊瑙e簳灞傝璁℃瘮姝昏纭儗鏂规硶鏇撮噸瑕併€傛渶鍚庨€佸ぇ瀹跺彞璇濓細"瀛楃涓插鐞嗙湅浼肩畝鍗曪紝浣嗚兘鎶奡tring鐜╁嚭鑺辩殑绋嬪簭鍛橈紝鎵嶆槸鐪熼珮鎵嬶紒"

本文由嘻道妙招独家原创,未经允许,严禁转载