特点
1.所有字符串字面值 都是字符串对象 "abc"
2.字符串是常量 一旦创建 不能改变
3.因为不可改变 所以可以共享
并不是"abc" 而是重新创建了一个"bcd"为s赋值
不能改变 但可以共享
字符串的比较
构造方法
public String();
public String(String str)
//忽略大小写比较内容
System.out.println("Abc".equalsIgnoreCase("aBc"));
字符/字节数组 转换为字符串
String 构造方法 public String(char[] chs); public String(char[] chs,int start ,int length) public String(byte[] bytes) public String(byte[] bytes,int start ,int length) 将字符串转换为字符数组 String 类 public char[] toCharArray(); 将字符串转换为字节数组 String 类 public byte[] getBytes();
//字符数组 --->String
char[] chs = {'a','b','c','d'};
//将字符数组转换为字符串
String s = new String(chs);
System.out.println(s);
//将字符数组的一部分转换为字符串 从1索引开始 转换3个
String s2 = new String(chs,1,3);
System.out.println(s2);
//将字节数组 --->String
byte[] bytes = {65,66,67,68};
//将字节数组转换为字符串 解码
String s4 = new String(bytes);
System.out.println(s4);
//将字节数组的一部分转换为字符串 从0索引 转换两个
String s5 = new String(bytes,0,2);
System.out.println(s5);
System.out.println("--------------------------------");
String str = "hello world";
//将str转换为字符数组
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
//将str转换为字节数组
byte[] strBytes = str.getBytes();
for (int i = 0; i < strBytes.length; i++) {
System.out.println(strBytes[i]);
}
public char charAt(int index) 根据索引找字符
长度 数组 length属性 集合 size()方法 字符串 length()方法
//将字符串转为字符数组并遍历
char[] chs = s.toCharArray();
for (int i = 0; i < chs.length; i++) {
System.out.println(chs[i]);
}
5
String 类
方法 int indexOf(int ch) 查找当前字符 在字符串中第一次出现的索引位置 int indexOf(int ch,int fromIndex) 从fromIndex开始查询 int lastIndexOf(int ch) 查询指定字符 在字符串中最后一次出现的索引 int lastIndexOf(String str) //查询\在字符串中最后一次出现的索引位置 int indexOf = path.lastIndexOf('\\'); System.out.println(indexOf);
字符串的截取
String substring(int startIndex) 从开始索引截取到末尾 String substring(int startIndex,int endIndex) [start,end)
String str = "I Love Java";
//从2索引开始截取到末尾
String substring = str.substring(2);
System.out.println(substring);
//截取Love 开始索引为2 结束索引为6 不包含6
String substring1 = str.substring(2, 6);
System.out.println(substring1);
String path = "d:\\wo\\abc\\ab\\1.txt";
//获取文件名
//获取\\最后一次出现的索引位置
int lastIndex = path.lastIndexOf("\\");
//从\\最后一次的索引+1开始截取 截取到末尾
String fileName = path.substring(lastIndex + 1);
System.out.println(fileName);
字符串大小写转换
String toUpperCase() 字符串转大写 String toLowerCase() 字符串转小写
字符串判断开头和结尾
boolean startsWith(String s) 判断开头 boolean endsWith(String s) 判断结尾
字符串拼接和去除空格
String concat(String s) 字符串拼接
String trim() 去掉字符串两端的空格
String s = "abc".concat("def");
System.out.println(s);
//两种类似 可用 + 代替
String s2 = "abc"+"def";
System.out.println(s2);
//去掉两端空格
String str = " ab d ";
String trim = str.trim();
System.out.println(str);
System.out.println(trim);
System.out.println("====");
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = sc.nextLine().trim();
System.out.println("请输入密码:");
String password = sc.nextLine().trim();
if(username.equals("liuyan") && password.equals("123")){
System.out.println("登陆成功");
}else{
System.out.println("登陆失败");
}