一、String类概述
在Java中,字符串被作为String类型的对象来处理。
String类位于java.lang包中,默认情况下会自动导入到所有的程序中。
创建String对象的方法如下:
String s = "Hello World!";
或者
String s = new String("Hello World!");
二、String类常用方法
1.求字符串长度 length() 在语法中:length()返回字符串的长度。
例如,注册新用户时要求密码长度不能小于6位:
1 import java.util.Scanner; 2 3 public class Register { 4 5 public static void main(String[] args) { 6 Scanner input = new Scanner(System.in); 7 String uname,pwd; 8 System.out.print("请输入用户名:"); 9 uname = input.next(); 10 boolean flag = false;//控制是否重新输入密码 11 do { 12 System.out.print("请输入密码:"); 13 pwd = input.next(); 14 //判断密码长度是否符合要求 15 if (pwd.length() < 6) { 16 System.out.println("密码长度不能小于6位!"); 17 } else { 18 System.out.println("注册成功!"); 19 flag = true; 20 } 21 } while (!flag ); 22 System.out.println("您注册的账号为:"+uname+"密码:"+pwd+",请牢记!"); 23 input.close(); 24 } 25 26 }
2.字符串比较
语法: 字符串1.equals(字符串2);
在使用equals()方法比较两个字符串时,它逐个地对照组成两个字符串的每个字符是否相同。如果都相同,则返回真值,否则返回假值。对于字符的大小写,也在检查范围之内。
注:在Java中,双等号(==)和equals()方法应用于两个字符串,所判断的内容是有差别的。“==”判断的是两个字符串对象在内存中的地址,就是判断是否是同一个字符串对象,而equals()判断的是两个字符串对象的值。
★忽略大小写的字符串比较的语法:
字符串1.equalsIgnoreCase(字符串2);
系统规定登陆时不考虑用户名的大小写问题实现登录,使用equalsIgnoreCase()方法即可实现。
public class Login(){
public static void main(String[] args){
//省略部分代码
if(uname.equalsIgnoreCase("TOM")&&pwd.equalsIgnoreCase("123456")){
System.out.println("登陆成功!");
}else{
System.out.println("用户名或密码不匹配,登录失败!");
}
}
}
★在Java中,String类提供了两个方法改变字符串中字符的大小写:
toLowerCase():转换字符串中的英文字符为小写;
toUpperCase():转换字符串中的英文字符为大写。
1 import java.util.Scanner; 2 3 public class Login { 4 5 public static void main(String[] args) { 6 Scanner input = new Scanner(System.in); 7 String uname,pwd; 8 System.out.print("请输入用户名:"); 9 uname = input.next(); 10 System.out.print("请输入密码:"); 11 pwd = input.next(); 12 //equals() 13 if(uname.equals("TOM")&&pwd.equals("asdfgh")){ 14 System.out.println("登陆成功!"); 15 }else{ 16 System.out.println("用户名和密码不匹配,登录失败!"); 17 } 18 //equalsIgnoreCase() 19 if(uname.equalsIgnoreCase("TOM")&&pwd.equalsIgnoreCase("asdfgh")){ 20 System.out.println("登陆成功!"); 21 }else{ 22 System.out.println("用户名或密码不匹配,登录失败!"); 23 } 24 //toLowerCase() 25 //toUpperCase() 26 if(uname.toUpperCase().equals("TOM")&&pwd.toLowerCase().equals("asdfgh")){ 27 System.out.println("登陆成功!"); 28 }else{ 29 System.out.println("用户名或密码不匹配,登录失败!"); 30 } 31 input.close(); 32 33 } 34 35 }
3.字符串的连接
语法: 字符串1.concat(字符串2);
字符串2被连接到字符串1的后面,返回连接后的新字符串。
所以连接字符串的方法有两种:使用“+”运算符和使用String类的concat()方法。
4.字符串提取和查询
public int indexOf(int ch);
public int indexOf(String value);//搜索第一个出现的字符ch(或者字符串value)
public int lastIndexOf(int ch);
public int lastIndexOf(String value);//搜索最后一个出现的字符(或字符串value)
public String substring(int index);//提取从位置索引开始的字符串部分
public String substring(int beginindex,int endindex);//提取从beginindex开始到endindex之间的字符串部分
public String trim();//返回一个前后不含任何空格的调用字符串的副本
字符串事实上也是一个字符数组。
案例:
学生使用作业提交系统提交Java作业时,输入Java源文件名,并输入自己的电子邮箱,提交前系统检查:是否是合法的Java文件名,电子邮件是否为合法的电子邮箱。
分析:
判断Java的文件名是否合法,关键是判断它是不是以“.java”结尾;
判断电子邮箱是否合法,至少要检查电子邮箱名中是否包含“@”和“.”,并且“@”在“.”之前。
这里需要使用到String类提供的提取和搜索字符串的方法: