String——字符串
一、String對象中的常用方法
字符串是一個字符序列,並且是一個引用類型。首先簡單地介紹一下String對象的一些簡單的方法:
1、length():返回字符串的字符數;
2、charAt(index):返回字符串s中所指定位置上的字符,index表示下標;
3、concat(參數——字符串):將本字符串和參數字符串連接,返回一個新的字符串;
4、toUpperCase():返回一個新的字符串,其中所有的字母大寫;
5、toLowerCase():返回一個新的字符串,其中所有的字母大寫;
6、trim():返回一個新的字符串,去掉了兩邊的空白字符。例:
class Test06{
public static void main(String[] args){
String str1="abCDef";
String str2=" abcdef ";
System.out.println("字符串str1的長度爲:"+str1.length());
System.out.println("輸出字符串str1中下標爲2的字符:"+str1.charAt(2));
System.out.println("拼接字符串str1與str2之後得:"+str1.concat(str2));
System.out.println("將字符串str1中的字母全部轉化爲大寫:"+str1.toUpperCase());
System.out.println("將字符串str1中的字母全部轉化爲小寫:"+str1.toLowerCase());
System.out.println("將字符串str2中的兩邊的空格去掉爲:"+str2.trim());
}
}
/*
運行結果:
字符串str1的長度爲:6
輸出字符串str1中下標爲2的字符:C
拼接字符串str1與str2之後得:abCDef abcdef
將字符串str1中的字母全部轉化爲大寫:ABCDEF
將字符串str1中的字母全部轉化爲小寫:abcdef
將字符串str2中的兩邊的空格去掉爲:abcdef
*/
二、從控制檯讀取字符串
爲了從控制檯讀取字符串,調用Scanner對象上的next()。例如:下面的代碼就可以從鍵盤讀取三個字符串:
import java.util.Scanner;
class Test07{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter a string:");
String str1=input.next();
String str2=input.next();
String str3=input.next();
System.out.println("str1="+str1);
System.out.println("str2="+str2);
System.out.println("str3="+str3);
}
}
/*
運行結果:
Enter a string:Welcome to xian
str1=Welcome
str2=to
str3=xian
*/
特別提醒:next()方法的讀取是以空白字符結束的字符串;可以使用neatLine()方法讀取以按下回車鍵爲結束標誌的字符串。例:
import java.util.Scanner;
class Test07{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter a string:");
String str1=input.nextLine();
System.out.println("str1="+str1);
}
}
/*
運行結果:
Enter a string:welcome to xian
str1=welcome to xian
*/
三、字符串比較
先簡單的介紹一下String對象的比較方法
1、equals(參數——字符串):如果該字符串等於參數字符串,返回true;
2、equalsIgnoreCase(參數——字符串):如果字符串等於參數字符串,返回true,切記不區分大小寫;
3、compareTo(參數——字符串):返回一個大於0、等於0、小於0的整數,表明一個字符串是否大於、 等於或者小於s1;
4、compareToCase(參數——字符串):和3一樣,就是區分大小寫;
5、contains(參數——字符串):如果參數字符串是該字符串的子字符串,返回true。
class Test07{
public static void main(String[] args){
String str1="AbcdEf";
String str2="Abcd";
String str3="aBcdeF";
String str4="AbcdEf";
System.out.println("str1是否與str4相等:"+str1.equals(str4));
System.out.println("str1是否與str3相等:"+str1.equalsIgnoreCase(str4));
System.out.println("str1是否與str2相等:"+str1.compareTo(str2));
System.out.println("str1是否與str3相等:"+str1.compareToIgnoreCase(str3));
System.out.println("str2是否是str1的子串:"+"AbcdEf".contains("Abcd"));
}
}
/*
運行結果:
str1是否與str4相等:true
str1是否與str3相等:true
str1是否與str2相等:2
str1是否與str3相等:0
str2是否是str1的子串:true
*/
四、獲取字符串中的字符或者子串
String類包含獲取子串的方法
五、獲得子字符串
1、substring(參數——數字):返回該字符串的子串,從特定的位置參數字符的下標開始一直到該字符串結束;
2、substring(參數1——數字,參數2——數字):返回的是該字符串中的下標所指定的區間上所對應的字符串。
class Test07{
public static void main(String[] args){
String str1="I am a good student";
String str2="you are a good teacher";
String str3="";//放小的
String str4="";//存放大的
int k=1;//存放較小的字符串長度
String str="";
boolean flag=true;
if(str1.length()>=str2.length()){
k=str2.length();
str3=str2;
str4=str1;
}else{
k=str1.length();
str3=str1;
str4=str2;
}
for(int i=0;i<k;i++){
for(int j=0;j<=k-1-i;j++){
String str=str3.substring(j,k-1-i);
if(str4.contains(str)){
flag=false;
System.out.println("asdf "+str);
break;
}
}
if(!flag){
break;
}
}
}
}