Java基礎學習(五):String類、字符串常見操作
一、String類、字符串
- 字符串是常量,創建後其值不可改變,長度也不可變。
String str = "hahaha" ;
- 如果不初始化字符串對象,變量就不會指向任何一個內存地址,此時調用會出錯。
- 創建一個空字符串可以使用null賦值。
String str = null ;
- 初始化字符串
·String str = "hahaha"
·String str = new String ("hahaha")
·string str = String.valueOf(其他任意類型)
(用來將其他任意類型的基本數據類型轉化成字符串) - 用字符數組初始化
·new String(char[])
·new String(char[],int,int)
(int,int是截取字符數組當中的int1到int2的字符)
·String.valueOf(char[])
·String.valueOf(char[],int,int)
public class first {
public static void main(String[] args) {
char[] ch = {'h','a','h','a'};
String s1 = new String(ch);
String s2 = new String(ch,1,2);
String s3 = String.valueOf(ch);
String s4 = String.valueOf(ch,1,2);
System.out.println(s1+"\n"+s2+"\n"+s3+"\n"+s4);
}
}
//-------------輸出---------------
haha
ah
haha
ah
二、字符串的常見操作:拼接
- · “ + ”加號用來拼接多個字符串,注意兩邊必須是字符串或者String對象。(右操作數會被強制轉化成String類型)。
· “ += ”即str += str1 => str = str + str1
。
·字符串.concat(字符串)
(返回一個新的對象,不改變原對象本身,必須執行賦值操作)。 - 字符長度:
字符串.length()
public class first {
public static void main(String[] args) {
char[] ch = {'h','a','h','a'};
String s1 = new String(ch);
System.out.println(s1.length());
}
}
三、字符串的常見操作:字符串的索引
- charAt()方法:
使用charAt(int index)
方法可以獲取字符串中的指定索引位置的字符,方法入參爲int數值,字符串第一個索引值爲0,最後一個字符索引值爲字符長度減1,返回爲一個char類型。
public class first {
public static void main(String[] args) {
String s1 = "hahehrht";
System.out.println(s1.charAt(1));
}
}
//-----------輸出-------------
a
- indexOf()方法:
使用indexOf()方法可以返回入參字符在指定String對象中 第一次出現 的索引位置,如果失敗返回-1。
indexOf()重載有四種:
方法 | 功能描述 |
---|---|
indexOf(int ch) | 返回入參字符在指定String對象中第一次出現的索引位置,入參字符爲Unicode編碼 |
indexOf(int ch , int fromIndex) | 從入參索引值 fromIndex開始搜索,返回入參字符在指定String對象中第一次出現的索引位置,入參字符爲Unicode編碼 |
indexOf(String str) | 返回入參字符串在指定String對象中第一次出現的索引位置 |
indexOf(String str , int fromIdex) | 從入參索引值 fromIndex開始搜索,返回入參字符串在指定String對象中第一次出現的索引位置 |
四、字符串的常見操作:字符串的替換
方法 | 功能描述 |
---|---|
replace(char old , char new) | 把old替換爲new,注意是字符串中的old會全部替換爲new,支持正則表達式 |
replaceAll(String regex , String replacement) | 從字符串的首位開始進行搜索,直到尾部,被匹配到的字符,字符串,正則表達式都會被替代 |
replaceFirst(String regex , String replacement) | 從字符串的首位開始進行搜索,直到尾部,被匹配到的字符,字符串,正則表達式只會把第一個匹配的替換 |
五、字符串的常見操作:字符串的截取
方法 | 功能描述 |
---|---|
substring(int beginIdex) | 從入參索引位置開始截取,直到指定String對象結尾 |
substring(int beginIdex , int endindex) | 從入參索引位置開始截取,到endindex-1的位置結束(左閉右開) |
六、字符串的常見操作:字符串的分割
方法 | 功能描述 |
---|---|
split(String regex) | 將字符串按照一定的規劃分割成字符串數組,可以是“,” 等分隔符,也可以是正則表達式 |
String[] str = str.split(",");
七、字符串的常見操作:判斷字符串首尾內容,字符串首尾去空格,字符串大小寫轉換
操作 | 方法 | 功能描述 |
---|---|---|
判斷字符串首尾內容: | startsWith(String prefix) | 判斷字符串是否以前綴開始 |
startsWith(String prfix , int fromidex) | 從索引處判斷字符串是否以前綴開始 | |
endsWith(String suffix) | 判斷字符串是否以後綴開始 | |
字符串首尾去空格: | trim() | 返回一個去除字符串首尾空格的字符串 |
字符串大小寫轉換: | toLowerCase() | 指定對象中每個字符都轉化成小寫字母 |
toUpperCase() | 定對象中每個字符都轉化成大寫字母 |
八、字符串的常見操作:字符串比較
Java中,利用“ == ”來比較數據是否相等,而字符串雙等號卻是比較的引用內存地址是否相同。
方法 | 功能描述 |
---|---|
equals(String anotherString) | 比較字符串,區分大小寫 |
equealsIgnoreCase(String anotherString) | 比較字符串,不區分大小寫 |
九、字符串的常見操作:其他字符操作
方法 | 功能描述 |
---|---|
contains(CharSequences) | 判斷String對象中是否包含入參字符串,返回布爾值 |
compareTo(String antherString) | 按照ASCLL碼進行比較,如果相同則繼續往後比較,如果不同返回ASCLL的差值 |
hashCode() | 返回該字符串的哈希值 |
toCharArray() | 該方法可以將字符串轉化成一個新的字符數組 |
toString() | 轉化成字符串 |
十、格式化輸出
format(string str , Objetc...args)
轉換符 | 說明 |
---|---|
%s | 字符串類型 |
%c | 字符類型 |
%b | 布爾類型 |
%d | 整數類型(十進制) |
%x | 整數類型(十六進制) |
%o | 整數類型(八進制) |
%f | 浮點類型 |
%a | 十六進制浮點類型 |
%e | 指數類型 |
%g | 通用浮點類型 |
%% | 百分比類型 |
%n | 換行符 |
%tx | 時間如日期類型 |
例如:
public class first {
public static void main(String[] args) {
String s1 = "hahehrht";
System.out.println(String.format("%s這是一個字符串",s1));
}
}
//--------------輸出-------------
hahehrht這是一個字符串
format還提供時間格式化的操作:鏈接