java string 判断一个字符串里是否包含另一个字符串,忽略大小写
Java中判断一个字符串里是否包含另一个字符串,只需要使用indexOf方法查看返回值是否非负数,如果是,则说明存在(该返回值代表第一次找到匹配时的索引坐标)。如果要忽略大小写,则可以使用将两个字符串都转为大写(或小写)之后再判断的方法。
常用的方法
public boolean equals(Object obj)
判断当前字符串与obj的内容是否相同
public boolean equalsIgnoreCase(String str)
判断当前字符串与str的内容是否相同,这个方法不会区分大小写字母的区别
public int length()
返回字符串的长度,即字符的总个数
public String trim()
去掉字符串两端的空白,包括“空格,\t,\n,\r等控制符”
public String substring(int start,int end)
根据开始和结束的位置,返回当前String的子字符串
public String substring(int start)
从开始位置开始到字符串结束,返回子字符串
public char charAt(int index)
返回指定位置的字符
public int indexOf(String str)
返回子字符串在当前字符串的位置,如果当前字符串不包含子字符串就返回-1
public String concat(String str)
返回一个字符串,内容是当前字符串与str连接而成的。
字符串连接可以简化写为String str = str1 + str2;结果与concat方法相同
public boolean startsWith(String str)
判断当前字符串,是否以str开头
public boolean endsWith(String str)
判断当前字符串,是否以str结尾
Java中判断一个字符串里是否包含另一个字符串,只需要使用indexOf方法查看返回值是否非负数,如果是,则说明存在(该返回值代表第一次找到匹配时的索引坐标)。
如果要忽略大小写,则可以使用将两个字符串都转为大写(或小写)之后再判断的方法。
具体代码如下:
public class Demo {
// 查找指定字符串是否存在
public static void main(String[] args) {
String str1 = "abcdefghijklmnabc";
String str2 = "hiJK";
// 查找是否存在指定的字符
System.out.println(str1.indexOf(str2));
// 忽略大小写查找
System.out.println(str1.toUpperCase().indexOf(str2.toUpperCase()));
}
输出:
-1:代表str1中不包含str2
7:忽略大小写后,包含,且起始位置为第8个字符处
public static void main(String[] args) {
String TEST_ASTRING = "baidu";
String TEST_BSTRING = "AI";
System.out.println(TEST_ASTRING.toLowerCase().contains(TEST_BSTRING.toLowerCase()));
}
}
重点是 字符串A.contains(字符串B)
含义是 字符串A包含字符串B 返回真,不包含返回假
但是 会区分大小写,所以用 toLowerCase() 统一转化为小写
然后使用这个方法 就OK了.
Pattern p = Pattern.compile("abcdefhi", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("xxxxxxxxxxAbcDEFghiyyyyyyyyyy");
while(m.find()){
System.out.println(m.group());
}