代码示例:
packageapi;
publicclassapiString{
publicstaticvoidmain(String[]args){
//String创建字符串,封装字符串的三种方式
//1.通过无参构造器newString();
Strings1="itheima";
System.out.println(s1);
Strings2=newString();//new出来的对象是空白字符串
//String类型的变量中储存的是地址,但是在打印的时候,编译器会自动帮我们找到对应的内容
System.out.println(s2);
s2="itheima2";
System.out.println(s2);
//2.利用字符数组,通过newString(chars)有参构造器创建
//将字符数组转换为字符串
char[]chars=newchar[]{'i','t','h','e','i','m','a','3'};
Strings3=newString(chars);
System.out.println(s3);
//3.利用字节数组,通过newString(bytes)有参构造器创建
byte[]bytes=newbyte[]{97,98,99};
Strings4=newString(bytes);
System.out.println(s4);
}
}
3.String提供的常用方法
代码示例:
packageapi;
publicclassapiStringDemo1{
publicstaticvoidmain(String[]args){
//常用的String提供的方法
//获取字符串长度publicintlength()
Strings1="hhh,今天起晚了!";
ints1len=s1.length();
System.out.println(s1len);
//获取某个索引处的字符publiccharcharAt(intindex)
System.out.println(s1.charAt(5));
//将当前字符串转成字符数组并返回publicchar[]toCharArray();
char[]chars=s1.toCharArray();
System.out.println(chars);
//遍历转换后的数组
for(inti=0;i
System.out.print(chars[i]);
}
//判断当前字符串与另一个字符串是否一样publicbooleanepuals(ObjectanObject)
Strings2="hhh,今天起晚了!";
System.out.println(s1.equals(s2));
//判断当前字符串内容是否与另一个一样publicbooleanepualsIgnoreCase(StringantherString)
System.out.println(s2.equalsIgnoreCase("HHH,今天起晚了!"));
//截取固定长的字串
System.out.println(s2.substring(3,9));
//从某一位置截取到最后
System.out.println(s2.substring(4));
//将字符串中某一特定值转换(替换)为另一特定值
System.out.println(s2.replace('h','哈'));
//判断字串中是否包含某个字串
System.out.println(s2.contains("hhh"));
//判断字串中是否以某一字串开头
System.out.println(s2.startsWith("hh"));
System.out.println(s2.startsWith("hhhh"));
//将字符串以某个内容分割为字符串数组
String[]strings=s1.split(",");
System.out.println(strings);//返回的是数组首地址
for(inti=0;i
System.out.print(strings[i]+"");
}
}
}
4.注意事项
代码示例:
案例1
创建了两个对象,在堆中new了一个,常量区里创建了一个,最终结果为false
案例2
第一题为false,s2+"c"中是在进行运算,相当于s2也新建了一个堆中的对象
第二题为true,原因如下,以双引号的形式给出,则:
案例
案例代码:
packageapi;
importjava.sql.SQLOutput;
importjava.util.Scanner;
publicclassapiStringDemo2{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
for(inti=0;i<3;i++){
System.out.println("请您输入用户名:");
StringnameLogin=sc.next();
System.out.println("请您输入密码:");
StringpassWord=sc.next();
if(judgeOk(nameLogin,passWord)){
System.out.println("欢迎进入系统!");
break;
}
else{
System.out.println("您输入的用户名或密码有误,请重新输入!");
}
}
}
publicstaticbooleanjudgeOk(StringnameLogin,StringpassWord){
StringokName="itHeima";
StringokPassWord="123456";
return(nameLogin.equals(okName)&&okPassWord.equals(passWord));
//也可以用if语句
}
}
案例2:随机生成验证码
packageapi;
importjava.util.Random;
importjava.util.Scanner;
publicclassapiStringDemo3{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("请您输入希望生成验证码的位数:");
intn=sc.nextInt();
System.out.println("生成的验证码为:"+createPassword(n));
}
publicstaticStringcreatePassword(intn){
Randomr=newRandom();
Stringdate="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
char[]chs=date.toCharArray();
Stringcode="";
for(inti=0;i
intmm=r.nextInt(date.length());
code+=date.charAt(mm);
}
returncode;
}
}