【学习笔记】实用类String的基本应用即常用方法
一、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类提供的提取和搜索字符串的方法:
1 import java.util.Scanner; 2 3 /** 4 * 验证 5 * @author Administrator 6 * 7 */ 8 public class Verify { 9 10 public static void main(String[] args) { 11 boolean fileCorrect = false;//标识文件名是否正确 12 boolean emailCorrect = false;//标识E-mail是否正确 13 System.out.println("-----欢迎进入作业提交系统----"); 14 Scanner input = new Scanner(System.in); 15 System.out.print("请输入Java文件名:"); 16 String fileName = input.next(); 17 System.out.print("请输入你的邮箱:"); 18 String email = input.next(); 19 //检查Java文件名 20 int index = fileName.indexOf("."); //“.”的位置 21 int indexlast = fileName.lastIndexOf("."); 22 if(index!=-1&&index!=0&&fileName.substring(indexlast,fileName.length()).equalsIgnoreCase(".java")){ 23 fileCorrect = true; 24 }else{ 25 System.out.println("文件名无效!"); 26 } 27 //检查电子邮箱格式 28 if(email.indexOf("@")!=-1&&email.indexOf("@")!=0&&email.indexOf("@")<email.indexOf(".")){ 29 emailCorrect = true; 30 }else{ 31 System.out.println("E-mail无效!"); 32 } 33 //输出检测结果 34 if(fileCorrect&&emailCorrect){ 35 System.out.println("作业提交成功!"); 36 }else{ 37 System.out.println("作业提交失败!"); 38 } 39 input.close(); 40 41 } 42 43 }
5.字符串拆分
语法: 字符串.split(separator,limit);
separator为可选项,标识拆分字符串是使用的一个或多个字符。
如果不选择该项,则返回包含该字符串所有字符的元素数组。
limit为可选项,该值用来限制返回数组中的元素个数。