文章目錄
1. String 簡介
字符串,每一個字符串對象都是常量。API介紹
2. String 構造方法
- String(byte[]):構造一個String對象,將指定字節數組中的數據轉化成字符串。
- String(char[]):構造一個String對象,將指定字符數組中的數據轉化成字符串。
3. String 常用成員方法
3.1 判斷方法
方法名 | 描述 |
---|---|
boolean equals(String) | 判斷當前字符串與給定字符串是否相同,區分大小寫。 |
boolean equalsIgnoreCase(String) | 判斷當前字符串與給定字符串是否相同,不區分大小寫。 |
boolean startWith(String) | 判斷是否以給定字符串開頭。 |
boolean isEmpty() | 判斷字符串是否爲空。 |
實例:
/**
* 學習String類的判斷方法
* | 方法名 | 描述 |
* | -------------------------------- | -------------------------------------------------- |
* | boolean equals(String) | 判斷當前字符串與給定字符串是否相同,區分大小寫。 |
* | boolean equalsIgnoreCase(String) | 判斷當前字符串與給定字符串是否相同,不區分大小寫。 |
* | boolean startWith(String) | 判斷是否以給定字符串開頭 |
* | boolean isEmpty() | 判斷字符串是否爲空 |
*/
public class Test {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "ABC";
//equals(String):判斷相等,區分大小寫
boolean b1 = str1.equals(str2);
System.out.println("equals():" + b1);
//equalsIgnoreCase(String):判斷相等,不區分大小寫
boolean b2 = str1.equalsIgnoreCase(str2);
System.out.println("equalsIgnoreCase():" + b2);
//startWith():判斷以給定字符串開頭
boolean b3 = str1.startsWith("a");
System.out.println("startWith():" + b3);
//isEmpty():判斷爲空
String str3 = "";
boolean b4 = str3.isEmpty();
System.out.println("isEmpty():" + b4);
}
}
運行結果:
equals():false
equalsIgnoreCase():true
startWith():true
isEmpty():true
3.2 獲取方法
方法名 | 描述 |
---|---|
int length() | 返回字符串長度。 |
char charAt(int index) | 返回指定索引處的字符。 |
int indexOf(String) | 返回指定字符第一次出現的字符串內的索引。 |
int lastIndexOf(String) | 返回指定字符的最後一次出現的字符串中的索引。 |
String substring(int) | 返回指定索引位置以及後面的全部字符。 |
String substring(int, int) | 返回指定索引位置之間的字符,包含起始,不包含結尾,左閉右開區間。 |
實例:
/**
* 學習String類的獲取方法
* | int length() | 獲取當前字符串長度 |
* | char charAt(int index) | 返回char指定索引處的值 |
* | int indexOf(String) | 返回指定字符(串)第一次出現的索引 |
* | int lastIndexOf(String) | 返回指定字符(串)最後一次出現的索引 |
* | String substring(int) | 返回指定索引位置以及之後的字符串 |
* | String substring(int, int) | 獲取從索引start位置(含)起至索引end位置(不含)的字符串 |
*/
public class Test {
public static void main(String[] args) {
//定義一個字符串
String str = "This is a String!";
//length():獲取長度
System.out.println("length():"+str.length());//字符串長度
//charAt(int index)
char ch = str.charAt(1);//指定獲取第二個字符
System.out.println("charAt():"+ch);
//indexOf(String)
int idx=str.indexOf('i');//第一次出現 i 的索引值
System.out.println("indexOf(String):"+idx);
//lastIndexOf(String)
int idx2=str.lastIndexOf('i');//最後一次出現i的索引值
System.out.println("lastIndexOf(String):"+idx2);
//substring(int)
String s1 = str.substring(5);//截取從索引5開始的所有字符
System.out.println("substring(int):"+s1);
//substring(int, int)
String s2 = str.substring(5,11);//截取從索引[5,11)的字符,左閉右開。
System.out.println("substring(int, int):"+s2);
}
}
運行結果:
length():17
charAt():h
indexOf(String):2
lastIndexOf(String):13
substring(int):is a String!
substring(int, int):is a S
3.3 轉換方法
方法名 | 描述 |
---|---|
byte[] getBytes() | 將字符串轉換成字節數組。 |
char[] toCharArray() | 將字符串轉換成字符數組。 |
static String valueOf() | 將指定類型數據轉換成字符串 |
String replace(old,new) | 將指定字符替換成新的字符 |
String[] split(String) | 切割字符串,返回切割後的字符串數據,原字符串不變 |
String trim() | 去掉首尾任意個空格字符,原字符串不變。 |
實例:
package com.base.F_StringClassStudy.demo3;
/**
* 學習Spring類的轉換方法
* | byte[] getBytes() | 將字符串轉換成字節數組。 |
* | char[] toCharArray() | 將字符串轉換成字符數組。 |
* | static String valueOf() | 將指定類型數據轉換成字符串 |
* | String replace(old,new) | 將指定字符替換成新的字符 |
* | String[] split(String) | 切割字符串,返回切割後的字符串數據,原字符串不變 |
* | String trim() | 返回一個字符串,其值爲此字符串,並刪除任何前導和尾隨空格。|
*/
public class Test {
public static void main(String[] args) {
String s1 = "abc";
//byte[] getBytes()
System.out.println("getBytes():");
byte[] bys = s1.getBytes(); //將字符串轉換成字節數組
for (int i = 0; i < bys.length; i++) {
System.out.print(bys[i]);
if (i < bys.length - 1) System.out.print(",");
}
System.out.println("\n----------------分割線--------------");
//char[] toCharArray()
System.out.println("toCharArray():");
char[] chs = s1.toCharArray(); //將字符串轉換成字符數組。
for (int i = 0; i < chs.length; i++) {
System.out.print(chs[i]);
if (i < chs.length - 1) System.out.print(",");
}
System.out.println("\n----------------分割線--------------");
//static String valueOf()
System.out.println("valueOf():");
String s2 = String.valueOf(123); //將指定類型數據轉換成字符串
System.out.println(s2+4);
System.out.println("----------------分割線--------------");
//String replace(old,new)
System.out.println("replace():");
String s4 = "abc abc abc";
String s5 = s4.replace('b','d'); //將字符串中的 b 替換成 d
System.out.println(s5);
System.out.println("\n----------------分割線--------------");
//String[] split(String)
System.out.println("split():");
String[] arr = s4.split(""); //按空格字符來切割字符串
for (int i =0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println("\n----------------分割線--------------");
//String trim()
System.out.println("String trim():");
String s6 = " a b c ";
String s7 = s6.trim(); // 去掉首尾的空格字符
System.out.println("s6:"+s6);
System.out.println("s7:"+s7);
}
}
運行結果:
getBytes():
97,98,99
----------------分割線--------------
toCharArray():
a,b,c
----------------分割線--------------
valueOf():
1234
1234
----------------分割線--------------
replace():
adc adc adc
----------------分割線--------------
split():
a
b
c
a
b
c
a
b
c
----------------分割線--------------
String trim():
s6: a b c
s7:a b c
4. StringBuilder和StringBuffer 簡介
可變字符序列,用於構造字符串對象,內部使用自動擴展的數組操作字符串數據。StringBuilder和StringBuffer使用相同的 API( StringBuilde和StringBuffer中的方法相同 )。
5. StringBuilder構造方法
-
StingBuilder():構造一個空的StringBuilder容器
-
StringBuilder(String):構造一個StringBuilder容器,並添加指定字符串。
6. 常用成員方法
方法名 | 描述 |
---|---|
StringBuilder append() | 將任意數據添加到StringBuilder容器中 |
String toString() | 將當前StringBuilder容器轉換成字符串 |
實例:
/**
* 學習StringBuilder和StringBuffer
* | StringBuilder append() | 將任意數據添加到StringBuilder容器中,返回自身 |
* | String toString() | 將當前StringBuilder容器轉換成字符串 |
*/
public class Test {
public static void main(String[] args) {
//構造方法和
StringBuilder str1 = new StringBuilder();
//StringBuilder append():添加字符abc
StringBuilder str2 = str1.append("adc");
System.out.println("str1:" + str1);
System.out.println("str2:" + str2);
System.out.println("-----------------分割線-----------------");
StringBuilder str3 = new StringBuilder("abc");
System.out.println("str3:"+str3);
//String toString()
System.out.println("-----------------分割線-----------------");
StringBuilder str4 = new StringBuilder();
str4.append("This ");
str4.append("is a ");
str4.append("test!");
System.out.println("str4:"+str4);
//轉換成字符串
String s = str4.toString();
System.out.println("字符串s:"+str4);
}
}
運行結果:
str1:adc
str2:adc
-----------------分割線-----------------
str3:abc
-----------------分割線-----------------
str4:This is a test!
字符串s:This is a test!
時間:2019年10月25日18:26:44