概述
1、String类再lang包下,使用的时候不需要导包
2、String类代表字符串,java程序中的所有字符串文字都被实现为此类的实例
3、字符串不可变,他们的值在创建后不能被修改
创建字符串对象的区别对比
通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
通过以""直接赋值给出的字符串,只要字符序列相同,无论在程序代码中出现几次,JVM都会只建立一个String对象,并在字符串常量池中维护
字符串的比较
== :
比较基本类型,比较的是具体的值;
int a = 1;
int b = 1;
int c = 2
System.out.println(a == b);//true
System.out.println(a == c);//false
System.out.println(b == c);//false
比较引用类型,比较的是对象的地址值;
String str_1 = "abc";
String str_2 = new String("abc");
System.out.println(str_1 == str_2);//false
如果想比较两个字符串的内容是否相同
String str_1 = "abc";
String str_2 = new String("abc");
System.out.println(str_1 == str_2);//false
System.out.println(str_1.equals(str_2));//true
操作字符串的方法
equals()
用户登录案例
String username = "username";
String password = "123456";
Scanner scanner = new Scanner(System.in);
for (int i = 0; i <= 3; i++) {
String user = scanner.next();
String pass = scanner.next();
if(!username.equals(user)){
System.out.println("用户名错误");
}else if (!password.equals(pass)) {
System.out.println("密码错误");
}else {
System.out.println("登录成功");
break;
}
}
charAt()
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
for(int i = 0;i<s.length();i++){
char c = s.charAt(i);
System.out.println(c);
}
toCharArray()
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
char[] chars = s.toCharArray();
for (char aChar : chars) {
System.out.println(aChar);
}
substring()
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String start = s.substring(0, 3);
String end = s.substring(7);
System.out.println(start+"****"+end);