API帮助文档
Application Programming Interface:应用程序编程接口
Java API:JDK中提供的各种类
String类
软件包:java.lang //java.lang包中的内容是不需要导入包的
String 类表示字符串,java程序中的所有字符串文字都属于string类的实例
字符串是不可变的,一旦创建之后就无法更改,另,字符串缓冲区支持可变字符串
String类的构造方法
方法名及说明
public String() 无参构造方法,空字符串
public String(char[]chs) 含参构造方法,用chs初始化String对象
public String(byte[]bys) 根据字节数组的内容创建字符串
String str="Hwsir"; 直接赋值
示例
public static void main(String[] args) {
String str1=new String();
String str2=new String("Hwsir");
char []ch={'H','w','s','i','r'};
String str3=new String(ch);
byte []by={72,87,115,105,114};
System.out.println((int)'H'+" "+(int)'W'+" "+(int)'s'+" "+(int)'i'+" "+(int)'r');
String str4=new String(by);
System.out.println("赋值前str1:"+str1);
str1="Hwsir";
System.out.println("赋值后str1:"+str1);
System.out.println("str2:"+str2);
System.out.println("str3:"+str3);
System.out.println("str4:"+str4);
}
特殊情况
String str1="Hwsir";
String str2="HWsir";
实际上,在程序中,str1和str2指向同一个内存地址
public static void main(String[] args) {
String str1="HW_sir";
String str2="HW_sir";
System.out.println(System.identityHashCode(str1));
System.out.println(System.identityHashCode(str2));
char[]chs={'H','W','s','i','r'};
String str3=new String(chs);
String str4=new String(chs);
System.out.println(System.identityHashCode(str3));
System.out.println(System.identityHashCode(str4));
}
注:identityHashCode(object);获取对象的地址
运行结果
1607521710
1607521710
764977973
381259350
我们可以看到,str1和str2内存内存地址相同而str3和str4内存地址不同
字符串的比较
使用“==”比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同
比如:
String str1="Hwsir";
String str2="HWsir";
str1==str2比较的就是地址值
要比较字符串的内容,是通过成员方法equals()
boolean equals(Object anObject) 将此字符串与指定的对象进行比较。
参数即是一个字符串对象
`
public static void main(String[] args) {
String str1=new String("Hwsir");
String str2=new String("HW_sir");
String str3="Hwsir";
String str4="Hwsir";
//"=="比较,比较地址值
System.out.println(str3==str4);//true
System.out.println(str1==str3);//false
//“eguals()”方法比较
System.out.println(str1.equals(str2));//false
System.out.println(str1.equals(str3));//true
}
`
String实践——用户登录
已知用户名和密码,实现程序模拟用户登录,给予三次机会,登陆后显示相应功能
思路
(1)已知用户名和密码,使用字符串表示
(2)键盘输入用户名和密码
(3)判断用户名和密码是否均正确,进行字符串的比较
(4)循环实现控制三次容错登录机会
String name = new String("Hwsir");
String code = new String("666666");
String _name;
String _code;
Scanner in = new Scanner(System.in);
for (int i = 2; i >= 0; i--) {
System.out.println("请输入用户名:");
_name=in.nextLine();
System.out.println("请输入密码:");
_code=in.nextLine();
if(name.equals(_name)&code.equals(_code))
{
System.out.println("登录成功");
break;
}
else
{
System.out.println("用户名或者密码错误!,您还有"+i+"次机会!!!");
}
}
System.out.println();
}