判断多用于条件筛选,或者是进一步的操作,比如条件为true则进行XX操作,条件为false则进行XX操作,我们经常会用到,比如登录页面的判断用户名是否为空,验证码的输入与随机的验证码输出是否一致,可不可以忽略大小写等等。
方法示例及说明:
public class StringDemo {
public static void main(String[] args) {
String str1 = "english school";
String str2 = "ENGLISH school";
// equals(Object obj) 比较字符串的内容是否相同,区分大小写
// 像验证码输入,比较两者内容是否相同,不过,为了方便,验证码相关的字母一般是不区分大小写的
System.out.println("←--equals--比较字符串的内容是否相同,区分大小写--→");
System.out.println(str1.equals(str2));
// equalsIgnoreCase(String str) 比较字符串的内容是否相同,忽略大小写
System.out.println("--equalsIgnoreCase--比较字符串的内容是否相同,忽略大小写--→");
System.out.println(str1.equalsIgnoreCase(str2));
// 注意是以下三个方法判断的是字符串,而不是字符,字符串内容的多少取决于实际需求,理论上可以把整段字符串都拿去判断,但会失去意义。
// contains方法是整一段字符串去判断,startsWith方法是判断开头,endsWith方法是判断结尾,三者都可以判断整段字符串,比如用endsWith判断str1是否以english school结尾
// contains(String str) 判断大字符串中是否包含小字符串
// 类似于模糊查询,有则true,没有就false,这里没有str2字符串,就false,
System.out.println("←--contains--判断大字符串中是否包含小字符串--→");
System.out.println(str1.contains("lish"));
System.out.println(str1.contains("str2"));
// startsWith(String str) 判断字符串是否以某个指定的字符串开头
System.out.println("←----startsWith----→");
System.out.println(str1.startsWith("eng"));
// endsWith(String str) 判断字符串是否以某个指定的字符串结尾
System.out.println("←----endsWith----→");
System.out.println(str1.endsWith("hool"));
// isEmpty() 判断字符串是否为空。
// 注意!空字符串是"",不是null.空字符串是空白的字符串,比如说不加内容,或者是空格。null是空值。
String str3 = " ";
String str4 = null;
System.out.println("←--isEmpty--判断字符串是否为空--→");
System.out.println(str3.isEmpty());
// 直接用isEmpty判断null就会报异常,空指针异常,null是空值,而不是空字符串。什么都没有,又不是空字符串,判断空白,自然会报错
// 空指针异常:java.lang.NullPointerException
// 这里直接注释,有兴趣的可以自个尝试
// System.out.println(str4.isEmpty());
// 如果要判断String不为 null或者"",可以这样
// stringNotNull代表不为空,也不为空字符串,注意不完全是notnull,只是我们习惯叫notnull
// 是两者之一就会false
System.out.println("←----判断null----→");
System.out.println(stringNotNull(str4));
}
// 一般String判断不为空方法
// 一般都需要先判断是否为notnull,避免出现异常
// 传入String
public static boolean stringNotNull(String str) {
// 不等于空,也不等于空字符串
if (str != null && !str.isEmpty()) {
return true;
}
return false;
}
}
演示结果: