字符串String类
一、无处不在字符串
二、字符串长度
String类提供了length()方法,确定字符串的长度
举例:(用户注册)
public class Register {
public static void main(String[ ] args) {
Scanner input = new Scanner(System.in);
String uname,pwd;
System.out.print("请输入用户名: ");
uname=input.next();
System.out.print("请输入密码: ");
pwd=input.next();
if( pwd.length()>=6 ){ //判断密码的长度
System.out.print("注册成功! ");
}else{
System.out.print("密码长度不能小于6位!");
}
}
}
三、字符串提取
1.常用字符串提取方法 indexOf()
返回出现第一个匹配的位置,如果没有找到字符或字符串,则返回-1
2.常用字符串提取方法subString()
beginindex: 字符串的位置从0开始算;endindex: 字符串的位置从1开始算
试一试:
如果要打印输出“小鱼儿”,在1 和 2处应填入的代码是什么?
String word = "Hello, ";
word = word.trim();
String s = word.concat("小鱼儿!");
int index1 = s.indexOf(',');
int index2 = s.indexOf('!');
System.out.println(s.substring(___1___, ___2____));
四、字符串比较
字符串比较String类提供了equals( )方法,比较存储在两个字符串对象的内容是否一致。
举例:登录
public class Login {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String uname,pwd;
System.out.print("请输入用户名: ");
uname=input.next();
System.out.print("请输入密码: ");
pwd=input.next();
if( uname.equals("TOM") && pwd.equals("1234567") ){
System.out.print("登录成功! ");
}else{
System.out.print("用户名或密码不匹配,登录失败!");
}
}
}
提高:“==”和equals()有什么区别
1.==:判断两个字符串在内存中的首地址,即判断是否是同一个字符串对象
2.equals():检查组成字符串内容的字符是否完全一致
举例:
(1) 声明一个string类型的对象 str1,这个操作会在内存中示例化一个string类型的对象。
(2) 再声明一个String类型的对象str2,这个操作会在内存中示例化另一个String类型的对象,与第一个对象相互独立。
(3)比较两个对象的引用,因为他们是相互独立的所以输出false
(4)比较两个对象的值,他们虽然是独立的内存区域但是有共同的内存结构(值),输出true
(1)声明一个字符串str1 会示例化一个String类型的对象。
(2)声明另一个字符串 ,现在会检查在同一作用域中有没有相同的内存结构的变量,如果有就直接将将地址指向他。
(3)==比较他们有相同的地址, true。
(4)equals比较他们有相同的内存结构(值),true。
五、字符串其他比较
1.使用equalsIgnoreCase()方法
2.使用toLowerCase()方法
3.使用toUpperCase( )方法
六、字符串连接
方法1:使用“+”
举例:
int sqlScore = 80; //sql成绩
int javaScore = 90; //java成绩
double htmlScore = 86.7; //html成绩
String scoreSheet = "SQL:" + sqlScore + " Java:" + javaScore + " HTML:" + htmlScore;
方法2:使用concat
举例:
String s = new String("你好,");
String name = new String("张三!");
String sentence = s.concat(name);
System.out.println(sentence);
七、字符串拆分
String类提供了split()方法,将一个字符串分割为子字符串,结果作为字符串数组返回
举例:
参考代码
public class Lyric {
public static void main(String[] args) {
String words="长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山";
String[] printword=new String[100];
System.out.println("***原歌词格式***\n"+words);
System.out.println("\n***拆分后歌词格式***");
printword=words.split(" ");
for(int i=0;i<printword.length;i++){
System.out.println( printword[i] );
}
}
}