java(12)字符串
一、字符串概述
1.1如何使用字符串
1)定义并初始化字符串
2)使用字符串,对字符串进行一些处理
1.2字符串的长度
语法:
字符串1.length(); -->返回字符串1的长度
1 public class Practice1 { 2 public static void main(String[] args) { 3 Scanner input = new Scanner(System.in); 4 String uname,pwd; 5 System.out.println("请输入用户名:"); 6 uname = input.next(); 7 System.out.println("请输入密码:"); 8 pwd=input.next(); 9 if(pwd.length()>=6){ //判断密码长度 10 System.out.println("注册成功"); 11 }else{ 12 System.out.println("密码长度不能小于6位"); 13 } 14 } 15 }
运行结果:如图:
1.3 字符串的比较
1)语法:
字符串1.equals(字符串2);
1 public class Practice2 { 2 public static void main(String[] args) { 3 Scanner input = new Scanner(System.in); 4 String uname,pwd; 5 System.out.println("请输入用户名:"); 6 uname = input.next(); 7 System.out.println("请输入密码:"); 8 pwd=input.next(); 9 if(uname.equals("tom")&&pwd.equals("1234567")){ 10 System.out.println("登入成功"); 11 }else{ 12 System.out.println("用户名或密码不匹配,登录失败"); 13 } 14 } 15 }
运行结果:如图:
疑问:为什么不能使用双等号(==)来判断两个字符串是否相同呢?
1.在Java中,双等号和equals()方法虽都应于两个字符串,但所判断的内容是有差别的
2.双等号判断的是两个字符串对象在内存中的首地址是否相等,即判断是否是同一个字符串对象
3.equals()判断的是两个字符串对象的值是否相等
1 public class Practice3{ 2 public static void main(String[] args){ 3 String character=new String("我爱你"); 4 String character1=new String("我爱你"); 5 if(character.equals(character1)){ 6 System.out.println("两个字符串值相同"); 7 }else{ 8 System.out.println("两个字符串值不相同"); 9 } 10 if(character==character1){ 11 System.out.println("两个字符串相同"); 12 }else{ 13 System.out.println("两个字符串不相同"); 14 } 15 } 16 }
运行结果:如图:
2)语法:
字符串1.equalsIgnoreCase(字符串2);
忽略大小写比肩字符串1和字符串2,如果都相同,则返回true,否则返回false
3)语法:
字符串.toLowerCase()——小写
字符串.toUpperCase()——大写
二、复杂点的字符串处理
2.1 字符串连接的方式
方式1:使用+号
方式2:字符串变量.concat(要连接的字符串);
2.2 字符串提取的常用方法
同一个方法,有多种表现形式——方法重载
1 indexOf(字符或字符串),查找字符或字符串首次出现的位置;
返回一个数字,-1表示没有,返回是>=0的数字,表示存在
2 lastIndexOf(字符或字符串),查找字符或字符串最后一次出现的位置;
返回一个数字,-1表示没有,返回是>=0的数字,表示存在
3 substring()方法
1. substring(提取位置):表示从提取位置开始一直提取到字符串的末尾结束
2. substring(开始位置,结束位置):表示提取从开始位置,到结束位置-1的子字符串[结束位置大于整个字符串的长度,出现异常]
4 trim()——去掉字符串左右两边的空格
5 字符串拆分——split()返回字符串数组
2.3、StringBuffer类
1、StringBuffer和String的区别?
String空间或长度是固定的,StringBuffer空间可变
String效率低于StringBuffer类
2、使用StringBuffer类的步骤?
步骤1:先创建对象
StringBuffer 对象名=new StringBuffer();
StringBuffer 对象名=new StringBuffer(默认值);
步骤2:向对象中追加或插入值
StringBuffer对象名.append(追加的值);//可以追加任何值(char,int等)
StringBuffer对象名.insert(要插入的位置,插入的值)