字符串是对象,对它所有的操作都是通过“.”这个运算符来进行的
字符串.操作
它表示对左边的这个字符串做右边的那个操作
这里的字符串可以是变量也可以是常量
两个字符串可以比较大小
s1.compareTo(s2)
如果s1比s2小,那么结果是负的;如果s1和s2相等,那么结果是0,;如果s1比s2大,那么结果是正的
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s1="abc";
String s2="abbd";
System.out.println(s1.compareTo(s2));//s1的位置也可以是“abcd”这种
}
}
获得string的长度
用length()函数//数组不需要带圆括号,字符串必须带
string name=“Helloworld”//name.length()——7
str1=“one”//str1.length()——3
str2=“”;//str2.length()——0
访问string里的字符
s.charAt(index)
返回在index上的单个字符
index的范围是0到length()-1
第一个字符的index是0,和数组一样
但是不能用for-each循环来遍历字符串
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s1="abc";
System.out.println(s1.charAt(2));//这个地方如果是s1.charAt(3)那么索引就会越界
}
}
//输出结果为c
遍历字符串
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s1="abc";
System.out.println(s1.charAt(2));
for(int i=0;i<s1.length();i++) {
System.out.println(s1.charAt(i));//遍历呀遍历
}
}
}
遍历字符串循环不能用for-each呀呀呀呀呀记住啦~~
得到子串
s.substring(n)//得到从n号位置到末尾的全部内容
s.substring(b,e)//得到从b号位置到e号位置之前的内容//不包括e号!!!!
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s1="abc12345汉字哟k";
System.out.println(s1.substring(2));
System.out.println(s1.substring(2,6));
}
}
寻找字符
s.indexOf(c)//得到c字符所在的位置,-1表示不存在
s.indexOf(c,n)//从n号位置开始寻找c字符
s.indexOf(t)//找到字符串t所在的位置
从右边开始找
//s.lastIndexOf(c)
//s.lastIndexOf(c,n)
//s.lastIndexOf(t)
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s1="abc12342汉字哟k";
System.out.println(s1.indexOf('4'));
//字符串有两个2,如果想找第二个的话需要先标记第一个
int loc=s1.indexOf('2');
System.out.println(s1.indexOf('2',loc+1));//从第一个2的下一个开始寻找2
System.out.println(s1.indexOf("123"));
}
}
其他字符串操作
s.starsWith(t)和s.endsWith(t)//这个字符串是不是一t开头或者结尾
s.trim()//把字符串两端的空格删掉
s.replace(c1,c2)//把字符串所有c1换成c2
s.toLowerCase()//把字符串所有字母改成小写字母
s.toUpperCase()//把字符串所有字母改成大写字母
所有字符串都是不可变的,对它们的操作结果都是制造新的字符串出来,字符串本身不可修改!
例如
import java.util.Scanner;
public class Mains {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s1="abc12342汉字哟k";
String s2=s1.toUpperCase();//定义一个新的字符串s2
System.out.println(s2);//输出s2
}
}