Java 在另一个字符串中搜索一个字符串

Java 在另一个字符串中搜索一个字符串,java,string,search,Java,String,Search,假设我有一个字符串表,它有几个字符串(比如母亲、父亲、儿子),现在在这个字符串表中,我想找到每个包含字符串“th”的单词 我该怎么做?方法string.equals(string)在这里没有帮助。根据您是否需要位置,使用或方法。以下代码片段应该具有指导意义: String[] tests = { "father", "mammoth", "thumb", "xxx", }; String fmt = "%8s%12s%12s%12

假设我有一个字符串表,它有几个字符串(比如母亲、父亲、儿子),现在在这个字符串表中,我想找到每个包含字符串“th”的单词


我该怎么做?方法string.equals(string)在这里没有帮助。

根据您是否需要位置,使用或方法。

以下代码片段应该具有指导意义:

String[] tests = {
        "father",
        "mammoth",
        "thumb",
        "xxx",
};

String fmt = "%8s%12s%12s%12s%12s%n";
System.out.format(fmt,
    "String", "startsWith", "endsWith", "contains", "indexOf");

for (String test : tests) {
    System.out.format(fmt, test,
        test.startsWith("th"),
        test.endsWith("th"),
        test.contains("th"),
        test.indexOf("th")
    );
}
这张照片是:

  String  startsWith    endsWith    contains     indexOf
  father       false       false        true           2
 mammoth       false        true        true           5
   thumb        true       false        true           0
     xxx       false       false       false          -1
字符串API链接
    • 测试此字符串是否以指定的前缀开头
    • 测试此字符串是否以指定的后缀结尾
    • 当且仅当此字符串包含指定的字符值序列时,返回
      true
    • 返回指定子字符串第一次出现的字符串内的索引。
      • -1
        如果没有发生

查找所有事件的索引 下面是一个使用
indexOf
lastIndexOf
以及
startingFrom
参数查找较大字符串中所有出现的子字符串(向前和向后)的示例

String text = "012ab567ab0123ab";

// finding all occurrences forward
for (int i = -1; (i = text.indexOf("ab", i+1)) != -1; ) {
    System.out.println(i);
} // prints "3", "8", "14"      

// finding all occurrences backward     
for (int i = text.length(); (i = text.lastIndexOf("ab", i-1)) != -1; ) {
    System.out.println(i);
} // prints "14", "8", "3"

如果您知道如何在另一个
字符串中搜索
字符串
,您将知道如何在
字符串
表中循环。您可以按照其他人的建议使用
indexOf
,或者如果它更复杂,您也可以使用
regex