提示:字符串類是編程中最常用的一種數(shù)據(jù)類型,比較重要?
前言
提示:這里可以添加本文要記錄的大概內容:
- Java中的字符串類是java.lang.String。它提供了許多方法來處理字符串,例如截取、拼接、替換、比較等等。
- 字符串類是不可變的,這意味著一旦創(chuàng)建了一個字符串對象,就不能更改字符串的內容。如果需要更改字符串,必須創(chuàng)建一個新的字符串對象。
- Java中的字符串是 Unicode 字符序列,可以包含任何字符,包括漢字和特殊字符。
- 字符串可以通過使用單引號或雙引號來創(chuàng)建。使用雙引號創(chuàng)建的字符串可以包含空格和特殊字符,使用單引號創(chuàng)建的字符串只能包含一個字符。
- Java中有許多其他類也可以處理字符串,例如StringBuffer和StringBuilder。這些類提供了更多的方法來修改字符串,但是它們不是線程安全的,所以在多線程環(huán)境中使用時要小心。
提示:以下是本篇文章正文內容,下面案例可供參考
一、字符串類創(chuàng)建對象方式
靜態(tài)創(chuàng)建
- 靜態(tài)創(chuàng)建:直接使用"字符串內容"
靜態(tài)方式創(chuàng)建的字符串對象,存儲在字符串常量池中
相同內容的字符串對象在常量池中只會創(chuàng)建一個對象
原因:盡可能節(jié)省內存空間
public static void main(String[] args) {
String s1 = "湯姆要";
String s2 = "湯姆要";
System.out.println(s1==s2);
}
動態(tài)創(chuàng)建
- 動態(tài)創(chuàng)建:使用
new
構造方法
動態(tài)方式創(chuàng)建的字符串存儲在堆區(qū)
每創(chuàng)建一個都要占據(jù)一個新空間
public static void main(String[] args) {
String s1 = new String("抓杰瑞");
String s2 = new String("抓杰瑞");
System.out.println(s1==s2);
}
二、String字符串內容不可改變
String 字符串對象創(chuàng)建后內容不能改變
一旦改變時間上產生一個新的字符串
public static void main(String[] args) {
String s1 = "湯姆要";
String s2 = "抓杰瑞";
s1 = s1+s2;
System.out.println(s1);
}
三、字符串常用方法
獲取字符串長度 length方法
返回一個字符串長度
在Java中,字符串類中的 length()
方法返回字符串的長度。它返回一個 int
值,表示字符串中字符的數(shù)量。
例如,下面的代碼返回字符串 “Hello, World!” 的長度:
public static void main(String[] args) {
String str = "Hello, World!";
System.out.println(str.length()); // 13
}
在這個例子中,字符串 str
的長度是 13,因為它包含 13 個字符(包括空格和標點符號)。
需要注意的是,length()
方法返回的是字符串的長度,而不是容量。字符串的容量是指底層字符數(shù)組大小,而長度是指字符串中實際字符的數(shù)量。
獲取字符串中的字符 charAt方法
獲取指定下標位置的字符,下標從0開始
public static void main(String[] args) {
String str = "hello world";
System.out.println(s.charAt(3));
}
獲取子串 substring方法
獲取指定下標范圍的子串
public static void main(String[] args) {
String str = "hello world";
//substring(int beginIndex,int endIndex) 包括開始,不包括結束
System.out.println(str.substring(1,6)); //ello
//從下標為1的位置開始截取,一直到下標為6的位置(不包含6)
System.out.println(str.substring(6)); //world
//substring(int beginIndex) 從開始到結束
}
定位字符或者字符串
在Java中,indexOf和lastIndexOf方法可以用來搜索字符串中指定字符或子字符串的位置,它們的用法如下:
indexOf
:獲取某個指定字符或字符串第一次出現(xiàn)的下標位置lastIndexOf
:獲取某個指定字符或字符串最后一次出現(xiàn)的下標位置
indexOf 方法
獲取某個指定字符或字符串第一次出現(xiàn)的下標位置
如果搜索到指定的字符或子字符串,則返回該字符或子字符串所在位置的下標值
返回值為-1,則代表此字符或字符串沒有出現(xiàn)
public static void main(String[] args) {
String str = "hello world";
System.out.println(str.indexOf('y')); //單個字符''
//輸出-1
}
調用indexOf
方法中結果為-1表示未查詢到指定的字符或字符串。
搜索指定字符
public static void main(String[] args) {
String str = "hello world";
System.out.println(str.indexOf('h')); //單個字符''
//輸出0
}
搜索指定字符串
public static void main(String[] args) {
String str = "hello world";
System.out.println(str.indexOf("world")); //"字符串"
//輸出6
}
在以上示例中,調用indexOf
方法分別搜索字符’h’和字符串"world"在原始字符串中第一次出現(xiàn)的位置,最終返回結果為0和6
lastIndexOf 方法
lastIndexOf方法與indexOf方法類似,不同的是它是獲取某個指定字符或字符串最后一次出現(xiàn)的下標位置
public static void main(String[] args) {
String str = "hello world";
System.out.println(str.lastIndexOf('o')); //搜索指定字符
System.out.println(str.lastIndexOf("wor")); //搜索指定字符串
}
在以上示例中,調用lastIndexOf
方法分別搜索字符’o’和字符串"wor"在原始字符串中最后一次出現(xiàn)的位置,最終返回結果為7和6
替換字符串或字符
在Java中,有多種方法可以替換字符串或字符,這里介紹其中兩種比較常見的方式:
他并不是真的替換了,而是返回了新的串,因為字符串不可改變
replace(char a,char b)
將字符串中出現(xiàn)的a替換成breplaceAll(String a,String b)
將字符串中出現(xiàn)的a替換成字符串b
replace方法
replace
方法用于替換字符串中的指定字符或字符串,它有兩個參數(shù),第一個參數(shù)為要被替換的字符或字符串,第二個參數(shù)為替換后的新字符或新字符串。
方法簽名如下:
public static void main(String[] args) {
String str = "hello world";
//替換指定字符,將字符串中的所有'o'字符替換成'*'字符
System.out.println(str.replace('o', '*'));
//替換指定字符串,將字符串中的"world"字符串替換成"Java"字符
System.out.println(str.replaceAll("world", "Java"));
}
在以上示例中,調用replace
方法分別替換字符串中的’o’字符和"world"字符串,返回替換后的新字符串
replaceAll方法
replaceAll
方法用于替換字符串中的匹配正則表達式的部分,它有兩個參數(shù),第一個參數(shù)為要被替換部分的正則表達式,第二個參數(shù)為替換后的新字符串。
例如:文章來源地址http://www.zghlxwxcb.cn/news/detail-482288.html
String str = "123 abc 456 def";
String newStr = str.replaceAll("\\d+", "X"); //將字符串中所有的數(shù)字都替換成'X'字符
System.out.println(newStr); //輸出X abc X def
在以上示例中,調用replaceAll
方法使用正則表達式"\d+"
匹配字符串中所有的數(shù)字,將其替換成'X'
字符,輸出替換后的新字符串。
比較字符串內容
equals
方法,是嚴格區(qū)分大小寫的比較equalsIgnoreCase
方法,不區(qū)分大小寫比較
實際應用中比較字符串內容是否相等,必須使用equals
在Java中比較字符串內容的常用方法有以下幾種:
equals方法
equals方法是String類中用來比較字符串內容是否相同的方法,它比較字符串對象中的字符序列是否相等。
如果相等,返回true;否則返回false。
例如:
String str1 = "hello";
String str2 = "hello";
String str3 = "Hello";
System.out.println(str1.equals(str2)); //輸出true
System.out.println(str1.equals(str3)); //輸出false
在以上示例中,使用equals方法比較兩個字符串對象的內容,結果str1和str2內容相同,返回true;而str1和str3內容不同,返回false。
equalsIgnoreCase方法
equalsIgnoreCase方法和equals方法相似,唯一不同的是它忽略字符大小寫。
如果忽略大小寫后兩個字符串內容相等,返回true;否則返回false。
例如:
String str1 = "hello";
String str2 = "HELLO";
System.out.println(str1.equalsIgnoreCase(str2)); //輸出true
在以上示例中,使用equalsIgnoreCase方法比較兩個字符串對象的內容,忽略了字符大小寫,結果返回true。
大小寫轉換
toUpperCase
將小寫字母轉換成大寫
toLowerCase
將大寫字母轉換成小寫
在Java中,可以使用以下方法將字符串中的字符轉換為大寫或小寫:
toUpperCase方法
toUpperCase
方法是String類中的方法,用于將字符串中的所有小寫字母轉換成大寫字母。方法返回一個新的字符串對象,原始字符串不發(fā)生改變。
例如:
public static void main(String[] args) {
String str = "hello world";
System.out.println(str.toUpperCase()); //輸出"HELLO WORLD"
}
在以上示例中,使用toUpperCase方法將字符串str中的所有小寫字母轉換為大寫字母,并將結果保存在一個新的字符串對象中。
toLowerCase方法
toLowerCase
方法是String類中的方法,用于將字符串中的所有大寫字母轉換成小寫字母。方法返回一個新的字符串對象,原始字符串不發(fā)生改變。
例如:
public static void main(String[] args) {
String str = "HELLO WORLD";
System.out.println(str.toLowerCase()); //輸出"hello world"
}
在以上示例中,使用toLowerCase方法將字符串str中的所有大寫字母轉換為小寫字母,并將結果保存在一個新的字符串對象中。
前綴和后綴
startsWith
:判斷字符串是否以指定的字符串開頭
endsWith
:判斷字符串是否以指定的字符串結尾
Java字符串中的前綴和后綴是指字符串開頭和結尾的部分。
可以使用String類的startsWith()
方法來判斷一個字符串是否以指定的前綴開始,使用endsWith()
方法來判斷一個字符串是否以指定的后綴結束。文章來源:http://www.zghlxwxcb.cn/news/detail-482288.html
例如:
public static void main(String[] args) {
String str = "Hello, World!";
System.out.println(str.startsWith("World!")); //false
System.out.println(str.endsWith("World!")); //true
}
到了這里,關于Java中常用的工具類——字符串類的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!