Java判断字符串中是否包含子字符串有三种方法。
- startsWith()
- contains()
- indexOf()
下面分别介绍这三种方法的使用。
startsWith()
startsWith()方法如下:
public boolean startsWith(String prefix, int toffset);
public boolean startsWith(String prefix) ;
参数 prefix 是要包含的子字符串参数 toffset 表示从哪里开始比较
没有指定toffset 时,从序位0开始比较。
返回值是布尔类型,包含则返回true,不包含则返回false。
例子
String s = "hello,world, yxjc123.com";
System.out.println(s.startsWith("hello"));
System.out.println(s.startsWith("yxjc123"));
System.out.println(s.startsWith("yxjc123", 13));
输出
true
false
true
false
true
startsWith只能用于开端比较或者知道序位的比较。
contains()
contains()方法没有像startsWith()方法那种限制,可以比较任意位置的子字符串。
public boolean contains(CharSequence s)
参数s是要包含的子字符串。
返回值是布尔类型,包含则返回true,不包含则返回false。
例子
String s = "hello,world, yxjc123.com";
System.out.println(s.contains("yxjc123"));;
输出
true
indexOf()
indexOf()用于找到子字符串的位置。
public int indexOf(int ch) ;
public int indexOf(String str, int fromIndex) ;
参数ch是要比较的字符串参数 fromIndex用于比较的开始位置
包含返回序位,不包含返回-1
例子
String s = "hello,world, yxjc123.com";
System.out.println(s.indexOf("yxjc123"));;
System.out.println(s.indexOf("yxjc123com"));;
总结
使用 contains()和 indexOf() 方法判断是否包含子字符串,不用管子字符串的位置,使用起来更加方便。
indexof()方法和Contains()方法都区分大小写
在区分大小写的情况下,Contains()方法效率比Indexof()方法效率高,不区分大小写则反之。