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;
}
}
}
}