1、String類使用
java.lang.String 類代表字符串,此類不需要導入。
創建字符串的常見3+1種方式:
public class demo01 {
public static void main(String[] args) {
//三種構造方法:
//1.使用空參構造:創建一個空白的字符串,不含任何內容
//初始化String對象,表示空字符序列
String str1 = new String();
System.out.println("第一個字符:" + str1);
//2.根據字符數組創建字符串
char [] charArray = {'A','B','C'};
String str2 = new String(charArray);
System.out.println("第二個字符:" + str2);
//3.根據字節數組創建字符串
byte [] byteArray = {105,100,116};
String str3 = new String(byteArray);
System.out.println("第三個字符:" + str3);
// 直接創建
String str4 = "Hello";
System.out.println("第四個字符:" + str4);
}
}
執行結果:
2、常用方法
1.比較方法
public boolean equals (Object anObject) :將此字符串與指定對象進行比較。
public boolean equalsIgnoreCase (String anotherString) :將此字符串與指定對象進行比較,忽略大小寫。
代碼演示:
public class demo02 {
public static void main(String[] args) {
// 1.equals:字符比較,區分字母大小寫
String str1 = "Hello";
String str2 = "Hello";
char[] charArray = {'H','e','l','l','o'};
String str3 = new String(charArray);
System.out.println(str1.equals(str2));//true
System.out.println(str2.equals(str3));//true
System.out.println(str3.equals("Hello"));//true
//equal方法是區分大小寫的
String str4 = "hello";
System.out.println(str1.equals(str4));//false
//空字符的時候建議放後面
String str5 = null;
System.out.println("abc".equals(str5));//推薦:false
// System.out.println(str5.equals("abc"));//空指針異常
// 2.equalsIgnoreCase:字符比較,不區分大小寫
String strA = "Java";
String strB = "java";
System.out.println(strA.equals(strB));//false
System.out.println(strA.equalsIgnoreCase(strB));//true
}
}
2.獲取方法
public int length() :獲取字符串中含有的字符個數,即字符串長度;
public String concat (String str) :將指定的字符串連接到該字符串的末尾。
public char charAt (int index) :獲取指定索引位置的單個字符。(索引從0開始)
public int indexOf (String str) :查找指定字符串在本字符串中首次出現的索引位置,如果沒有返回-1值。
代碼演示:
public class demo03 {
public static void main(String[] args) {
//1.獲取字符串的長度
int length = "jjsdsdcfdsfdfdcsdffcssa".length();
System.out.println("該段字符串長度爲:" + length);
//2.拼接字符串
String str1 = "Hello, ";
String str2 = "World !";
String str3 = str1.concat(str2);
System.out.println(str3);
//3.獲取指定索引位置的單個字符
char ch = "lsjndhdnsjkemd".charAt(9);
System.out.println("該段字符串的第9號索引位置的字符是:" + ch);
//4.查找指定字符串在本字符串中首次出現的索引位置,若無則返回:-1
String original = "jknndhdsmbjsthdsmtool";
int index = original.indexOf("hdsm");
System.out.println("'hasm'在該段字符串中首次出現的爲索引值:" + index);
System.out.println(original.indexOf("nihao"));//-1
}
}
執行結果:
3.截取方法
public String substring (int index):截取從參數位置一直到字符串末尾的一段,返回新的字符串;
public String substring(int begin, int end): 截取從begin開始,一直到end結束,中間的字符串;
備註:[begin,end),包含左邊,不包含右邊。
public class demo04 {
public static void main(String[] args) {
//截取到末尾
String str1 = "HelloWorld!";
String str2 = str1.substring(5);
System.out.println(str2);//World
//截取中間部分
String str3 = str1.substring(4,7);
System.out.println(str3);//oWo
}
}
4.轉換方法
public char[] toCharArray () :將此字符串轉換爲字符數組。
public byte[] getBytes () :使用平臺的默認字符集將該 String編碼轉換爲字節數組。
public String replace (CharSequence target, CharSequence replacement) :將與target匹配的字符串使
用replacement字符串替換。
代碼演示:
public class demo05 {
public static void main(String[] args) {
//1.轉換爲字符數組
char[] chars = "Hello".toCharArray();
System.out.println(chars[1]);//e
System.out.println(chars.length);
//2.轉換爲字節數組
byte[] bytes = "Hello".getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
//3.字符串的內容替換
String str1 = "H0w d0 y0u d0?";
String str2 = str1.replace("0","o");
System.out.println(str1);
System.out.println(str2);
}
}
執行結果:
5.分割字符串的方法
public String[] split(String regex) :將此字符串按照給定的regex(規則)拆分爲字符串數組。
代碼演示:
public class demo06 {
public static void main(String[] args) {
//逗號
String str1 = "aaa,bbb,ccc";
String[] array1 = str1.split("," );
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);
}
//空格
String str2 = "ddd eee fff";
String[] array2 = str2.split(" " );
for (int i = 0; i < array2.length; i++) {
System.out.println(array2[i]);
}
//英文句點“.”進行切分,必須寫“\\.”(兩個反斜槓)
String str3 = "ggg.hhh.iii";
String[] array3 = str3.split("\\." );
for (int i = 0; i < array3.length; i++) {
System.out.println(array3[i]);
}
}
}
執行結果:
6.練習
題目:
鍵盤輸入一個字符串,並且統計其中各種字符出現的次數。
種類:大寫字母、小寫字母、數字、其他;
代碼實現:
import java.util.Scanner;
public class demo07 {
public static void main(String[] args) {
//1.獲取鍵盤輸入的一個字符串
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
String input = sc.next();
//2.定義與初始化統計變量
int countUpper = 0;
int countLower = 0;
int countNumber = 0;
int countOther = 0;
//3.遍歷字符串,進行統計
//字符串轉換爲字符數組
char[] charArray = input.toCharArray();
for (int i = 0; i < charArray.length; i++) {
//讀取當前的單個字符
char ch = charArray[i];
if ('A' <= ch && ch <= 'Z' ){
countUpper ++;
}else if('a' <= ch && ch <='z'){
countLower ++;
}else if('0' <= ch && ch <='9'){
countNumber ++;
}else {
countOther ++;
}
}
//4.打印
System.out.println("大寫字母有:" + countUpper +"個");
System.out.println("小寫字母有:" + countLower +"個");
System.out.println("數字有:" + countNumber +"個");
System.out.println("其他字符有:" + countOther +"個");
}
}
運行結果: