10中java常見(jiàn)字符串操作實(shí)例
java String 類 字符串廣泛應(yīng)用 在 Java 編程中,在 Java 中字符串屬于對(duì)象,Java 提供了 String 類來(lái)創(chuàng)建和操作字符串。今天就為大家介紹一下java常見(jiàn)的字符串操作方法。
一、使用length()方法獲取字符串的長(zhǎng)度
public class maintest {
public static void main(String[] args) {
String str = "abcdefg";
//length():統(tǒng)計(jì)當(dāng)前字符串的字符個(gè)數(shù)
int i = str.length();
System.out.println(i);
}
}
二、使用indexOf()方法查找指定字符再字符串中的位置
public class maintest {
public static void main(String[] args) {
String str = "abcdefg";
//indexOf():查找指定字符再字符串中的位置
int index = str.indexOf("a");
System.out.println(index);
}
}
三、使用toUpperCase()方法將字符串中的字符變?yōu)榱舜髮?xiě)形式
public class maintest {
public static void main(String[] args) {
String str = "abcdefg";
//小寫(xiě)轉(zhuǎn)大寫(xiě)
//toUpperCase():將字符串中的字符變?yōu)榱舜髮?xiě)形式
String str = str.toUpperCase();
System.out.println(str);
}
}
四、使用toLowerCase()方法將字符串中的字符變?yōu)樾?xiě)
public class maintest {
public static void main(String[] args) {
//toLowerCase():將字符串中的字符變?yōu)樾?xiě)
String str = "WWMMDDHH";
String str1 = str3.toLowerCase();
System.out.println(str);
}
}
五、使用substring()方法截取字符串
public class maintest {
public static void main(String[] args) {
String str = "abcdefg";
//substring:截取字符串
String str = "abcdefg";
String str = str5.substring(0, 3);
System.out.println(str);
String str = str5.substring(3);
System.out.println(str);
}
}
六、使用replaceAll()方法替換當(dāng)前字符串中指定內(nèi)容
public class maintest {
public static void main(String[] args) {
String str = "abcdefg";
String str = str5.replaceAll("abc", "xyz");
System.out.println(str);
}
}
七、使用trim()方法能夠去掉當(dāng)前字符串中兩端的空格
public class maintest {
public static void main(String[] args) {
String str = " abc def ";
System.out.println(str.length());
String str1 = str9.trim();
System.out.println(str);
System.out.println(str1);
}
}
八、字符串+字符串 等于拼接
public class maintest {
public static void main(String[] args) {
String str1 = "123";
String str2 = "100";
System.out.println(str1+str2);
}
}
九、將字符串變?yōu)檎麛?shù)
public class maintest {
public static void main(String[] args) {
String str1 = "123";
String str2 = "100";
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
System.out.println(num1+num2);
}
}
十、使用charAt()找到指定字符串中位置的字符
public class maintest {
public static void main(String[] args) {
String str1000 = "abcde";
//charAt:找到指定字符串中位置的字符
char char = str1000.charAt(2);
System.out.println(char);
}
}
java字符串的比較
總體來(lái)說(shuō)java中字符串的比較是==比較引用,equals 比較值的做法。(equals 對(duì)于其他引用類型比較的是地址,這是因?yàn)閛bject的equals方法比較的是引用),但是不同的聲明方法字符串的比較結(jié)果也是不同的。
例如:
String str1=new String("a");
String str2=new String("a");
str1==str2 輸出false
str1.equals(str2) 輸出true
而如果這樣聲明
String str1="a";
String str2="a";
str1==str2 輸出true
str1.equals(str2) 輸出true
這是因?yàn)?equals 方法本來(lái)也是比較引用的 字符串類在實(shí)現(xiàn)的時(shí)候重寫(xiě)了該方法, 第一種聲明方法等于是聲明了兩個(gè)對(duì)象,用'==‘比較是時(shí)候比較的是引用輸出的是false 由于他們的值相同用equals的時(shí)候就比較的是值了,輸出true。
而第二種情況不是因?yàn)楸容^有與第一種有差異,而是因?yàn)槁暶饔胁町?,第二種聲明方法在聲明的時(shí)候有堆或堆棧 共用的現(xiàn)象,也就是說(shuō) 在聲明的時(shí)候如果如果聲明為類屬性他會(huì)檢查在堆棧中有沒(méi)有與現(xiàn)在聲明的是相同結(jié)構(gòu)的字符串。如果有就直接將地址指向已有內(nèi)存地址。聲明在方法內(nèi)部的局部變量原理一樣只不過(guò)他是堆棧共享。
對(duì)應(yīng)上面是示例:
第一種情況:
(1) 聲明一個(gè)string類型的對(duì)象 str1,這個(gè)操作會(huì)在內(nèi)存中示例化一個(gè)string類型的對(duì)象。
(2) 再聲明一個(gè)String類型的對(duì)象str2,這個(gè)操作會(huì)在內(nèi)存中示例化另一個(gè)String類型的對(duì)象,與第一個(gè)對(duì)象相互獨(dú)立。
(3)比較兩個(gè)對(duì)象的引用,因?yàn)樗麄兪窍嗷オ?dú)立的所以輸出false
(4)比較兩個(gè)對(duì)象的值,他們雖然是獨(dú)立的內(nèi)存區(qū)域但是有共同的內(nèi)存結(jié)構(gòu)(值),輸出true
第二種情況:
(1)聲明一個(gè)字符串str1 會(huì)示例化一個(gè)String類型的對(duì)象。
(2)聲明另一個(gè)字符串 ,現(xiàn)在會(huì)檢查在同一作用域中有沒(méi)有相同的內(nèi)存結(jié)構(gòu)的變量,如果有就直接將將地址指向他。
(3)==比較他們有相同的地址,
(4)equals比較他們有相同的內(nèi)存結(jié)構(gòu)(值)。
相關(guān)文章
linux系統(tǒng)下java項(xiàng)目在后臺(tái)啟動(dòng)的4種方式總結(jié)
Linux是集多種功能于一身的操作系統(tǒng),它可以讓用戶查看和管理當(dāng)下正在運(yùn)行的進(jìn)程,包括Java程序,這篇文章主要給大家總結(jié)介紹了關(guān)于linux系統(tǒng)下java項(xiàng)目在后臺(tái)啟動(dòng)的4種方式,需要的朋友可以參考下2023-10-10
SpringBoot項(xiàng)目中只執(zhí)行一次的任務(wù)寫(xiě)法實(shí)現(xiàn)
有時(shí)候我們需要進(jìn)行初始化工作,就說(shuō)明只要進(jìn)行一次的工作,本文主要介紹了SpringBoot項(xiàng)目中只執(zhí)行一次的任務(wù)寫(xiě)法實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
java處理異常的機(jī)制關(guān)鍵字throw和throws使用解析
這篇文章主要介紹了java處理異常的機(jī)制關(guān)鍵字throw和throws使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Netty與Spring Boot的整合實(shí)現(xiàn)
這篇文章主要介紹了Netty與Spring Boot的整合的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
elasticsearch開(kāi)發(fā)中data-streams使用解析
這篇文章主要為大家介紹了elasticsearch開(kāi)發(fā)中data-streams使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Java的Finalizer引發(fā)的內(nèi)存溢出問(wèn)題及解決
本文介紹了Java中的Finalizer機(jī)制,解釋了當(dāng)類實(shí)現(xiàn)finalize()方法時(shí),JVM的行為和潛在的風(fēng)險(xiǎn),通過(guò)一個(gè)示例程序,展示了實(shí)現(xiàn)finalize()方法會(huì)導(dǎo)致大量對(duì)象存活,最終引發(fā)OutOfMemoryError,文章分析了GC日志,解釋了Finalizer線程和主線程之間的競(jìng)爭(zhēng)2025-03-03
解決Java 部署Tomcat時(shí)使用jni和jna調(diào)用DLL文件的問(wèn)題
這篇文章主要介紹了解決Java 部署Tomcat時(shí)使用jni和jna調(diào)用DLL文件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Java Robot應(yīng)用示例之機(jī)器人功能
這篇文章主要為大家詳細(xì)介紹了Java Robot應(yīng)用示例之機(jī)器人功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

