概述
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);