1.String类:即字符串类,其主要构造方法为:
String(String Original),把字符串封装成字符串对象;
举例:String s1 = new String(“hello”);
String(char[] value),把字符数组的数据封装成字符串对象;
举例:char[] chs = {‘h’,‘e’,‘l’,‘l’,‘o’};
String s2 = new String(chs);
String(char[] value,int index, int count),从索引index开始把count个字符数组值封装成字符串对象。
举例:char[] chs = {‘h’,‘e’,‘l’,‘l’,‘o’};
String s3 = new String(chs,1,3);
最为简单的一种方法是直接构造法:
举例:String s4 = “hello”;
2.new创建与直接赋值:针对创建的String类的对象,通过构造方法创建的String对象,存放在java虚拟机的堆内存,堆内存里存放的是字符串常量的地址,字符串常量存放在方法区的常量池中;通过直接赋值所创建的对象直接是方法区中的常量池中的字符串常量。而语句(s1==s2)是比较s1和s2中存放的地址,显然不相同,但是s2和s3的地址相同,则会得到true结果。
3.String类的判断功能:
Object类:是类层次结构的根类,所有的类都直接或者间接继承自Object类;
如果一个方法的形参是Object,那么这里我们就可以传递Object类的任意子类对象;
boolean equals(Object obj):比较字符串的内容是否相同(区分大小写);
boolean equalsIgnoreCase(String str):比较字符串的内容是否相同(忽略大小写);
boolean startsWith(String str):判断字符对象是否以指定的str开头;
boolean endsWith(String str):判断字符对象是否以指定的str结尾;
4.String类运用举例(模拟用户登录):
public class UserLogin {
public static void main(String [] args) {
String username = "hxf1688";
String password = "2e5y8hxf";
for(int i=0; i < 3; i++) {
Scanner sc = new Scanner(System.in); //创建sc为输入类
System.out.println("请输入用户名:");
String user = sc.nextLine();
System.out.println("请输入密码:");
String psw = sc.nextLine();
if(username.equals(user)&&password.equals(psw)) {
System.out.println("登录成功");
break;
}
else {
if(i==2) {
System.out.println("您输入错误次数过多,请联系管理员");
}
else {
System.out.println("输入失败,您还有"+(2-i)+"尝试机会");
}
}
}
}
}
5.String类的获取功能:
int length():获取字符串的长度,也即字符个数;
char charAt(int index):获取指定索引处的字符;
int indexOf(String str):获取字符串str在字符串对象中出现的位置索引,返回str的第一个字符的索引位置;
String substring(int start):从索引start处开始截取字符串,一直到结尾;
String substring(int start, int end):从索引start(包括start)开始截取字符串,到end(不包括end)结束。
6.字符串的遍历:
for(int i=0; i < str.length() ;i++){ //注意这里使用的是str.length(),这是String类中的方法,若str为数组,则使用str.length,这里的length为属性
System.out.println(i);
}
7.统计字符串中大写字符、小写字符、数字字符的个数:
由于英文字母不论大小写和数字,从小到大都有一定顺序,比如统计大写字符,只需判断:ch >= ‘A’ && ch <= ‘Z’,即可。
8.String类的转换功能(将String类转换为字符数组、大小写的转换):
char[] toCharArray(): 把字符串转换为字符数组;
String toLowerCase(): 把字符串转换为小写字符;
String toUpperCase():把字符串转换为大写字符;