不能使用 == 去比较两个字符串的内容。原理:比较的是字符串的地址。
(如果两个字符串都是使用""进行赋值,那么他们都是放在常量池中,只要字符串内容一致,那么他们的地址相同,比较返回值为true。如果一个字符串为""直接赋值一个字符串为对象赋值,那么比较返回值为false,因为前者被存在常量池中一个被放在堆内存中两者的地址不同,即比较结果为false。)
推荐使用String类提供的 equals 方法:只关心内容一致即可。
方法名
说明
应用
public boolean equals(Object anObject)
将此字符串与指定对象进行比较。只关心字符内容是否一致!
登录账号密码的比较
public boolean equalsIgnoreCase(String anotherString)
将此字符串与指定对象进行比较,忽略大小写比较字符串,只关心字符内容是否一致!
验证码的比较
方法名
说明
public intlength()
返回此字符串的长度
public char charAt(int index)
获取某个索引位置处的字符
public char[] toCharArraiy():
将当前字符串转换成字符数组返回
public String substring(int beginIndex, int endIndex)
根据开始和结束索引进行截取,得到新的字符串(包前不包后)
public String substring(int beginIndex)
从传入的索引出截取,截取到末尾,得到新的字符串
public String replace(CharSequence target,CharSequence replacement)
得到新值,将字符串中的旧值替换,得到新的字符串
public String[] split(String regex)
根据传入的规则切割字符串,得到字符串数组返回
代码:
//1.返回此字符串的长度
name.length();
//2.获取某个索引位置处的字符
for (int i = 0; i < name.length(); i++) {
char ch =name.charAt(i);
System.out.println(ch);
}
//3.将当前字符串转换成字符数组返回
char[] chars2 = name.toCharArray();
for (int i = 0; i < chars2.length; i++) {
System.out.println(chars2[i]);
}
//4.根据开始和结束索引进行截取,得到新的字符串(包前不包后)
String name2 = "java是最厉害的编程语言!";
String rs = name2.substring(0, 9);
System.out.println(rs); //java是最厉害的
//5.从传入的索引出截取,截取到末尾,得到新的字符串
String rs2 = name2.substring(4);
System.out.println(rs2); //是最厉害的编程语言!
//6.得到新值,将字符串中的旧值替换,得到新的字符串
String name3 = "金三胖是最厉害的80后!我好爱金三胖";
String rs3 = name3.replace("金三胖", "***");
System.out.println(rs3);
//7.根据传入的规则切割字符串,得到字符串数组返回
String name4 = "王宝强,贾乃亮,陈羽凡";
String[] names = name4.split(",");
for (int i = 0; i < names.length; i++) {
System.out.println("选择了:" + names[i]);
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章