目录
注:new是在堆里面开辟一个空间,int a=10中a记录的是串池的地址值。
1:String概述
java.lang.String类代表字符串,java程序中的所以字符串文字都是此类的对象(eg:"abc")。
2.String注意点
字符串的内容不会发生改变,它的对象在创建后不能被改变。
3.创建String对象的二种方法
1.直接赋值:
String name="随便写";
2;new关键字
package Demo;
public class first {
public static void main(String[] args) {
//直接赋值
String name="随便写";
System.out.println(name);//随便写
//使用new方法来获取一个字符串对象
//空参构造:可以获取一个空白的字符串对象
String s2=new String();
System.out.println("@"+s2+"!");//@!
//传递一个字符串,根据传递的字符串内容创建一个新的字符串对象
String s3=new String("abc");
System.out.println(s3);//abc
//传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
//需求:我要修改字符串的内容。
char[] chs={'a','b','c','d'};
String s4=new String(chs);
System.out.println(chs);//abcd
//根据一个字节数组,根据字符数组的内容再创建一个新的字符串对象
//我们一般把字节信息进行转换,转换字符串,此时就要用到这个构造了。
byte[] bytes={97,98,99,100};
String s5=new String(bytes);
System.out.println(s5);//abcd
}
}
4.字符串的比较
4.1:==号比的是什么?
4.1.1:基本数据类型(比较的是数据值)
package Demo;
public class second {
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(a==b);//false
}
}
4.1.2:引用数据类型(比较的是地址)
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);//false
注:new是在堆里面开辟一个空间,int a=10中a记录的是串池的地址值。
4.2:比较
4.2.1:boolean equals方法(比较字符串) 完全一样才是true,否则为false。
4.2.2:boolean equalsIgnoreCase(要比较字符串) 忽略大小写的比较。
package Demo;
public class second {
public static void main(String[] args) {
String s1=new String("abc");
String s2="Abc";
System.out.println(s1==s2);//false
boolean result=s1.equals(s2);
System.out.println(result);//false
boolean result1=s1.equalsIgnoreCase("abc");
System.out.println(result1);//true
}
}
5.字符串的练习
5.1:用户登录
要求:已经知道正确的用户名和密码,请用程序实现模拟登录。总共用三次机会,登录以后,给出相应的提示(设置的账号被锁定,请联系客服)。
package Demo;
import java.util.Scanner;
public class 登录设置 {
public static void main(String[] args) {
String rightUsername="zhangsan";
String rightPassword="123456";
for(int i=0;i<3;i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = sc.next();
System.out.println("请输入密码:");
String password = sc.next();
if (username.equals(rightUsername) && password.equals(rightPassword)) {
System.out.println("用户登录成功");
break;
} else {
if(i==2) {
System.out.println("账号"+rightUsername+"被锁定,请联系客服");
}else{
System.out.println("用户登录失败,用户名或密码有误,你还剩下" + (2 - i) + "次机会");
}
}
}
}
}
5.2:遍历字符串
注:public char charAt(int index):根据索引返回字符
package Demo;
import java.util.Scanner;
public class four {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=sc.next();
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
System.out.println(c);
}
}
}
//请输入一个字符串:saca
输出:
s
a
c
a