在两个 CharSeqeunce 之间搜索 CharSequences (Java)

Search for CharSequences between two CharSeqeunces (Java)

首先我想说,我是 Java 的菜鸟。 (抱歉,如果答案这么简单)。 我有一个字符串,其中包含以下文本:

String htmlContent = "DienstagfälltMittwochfällt";

现在我有 3 个 CharSequences:

CharSequence dt = "Dienstag";
CharSequence mt = "Mittwoch";
CharSequence keyword = "fällt";

我要搜索

fällt 

在其他 2 个 CharSequences 之间。我不应该找到

fällt 

在 CharSequence 之后

Mittwoch

有什么方法或者其他的吗?如果没有,我如何实现我的想法? 举个例子也不错 :).

我现在的代码:

import java.io.*;
import java.net.*;

public class TextScanner {

   public static void main (String[] args) throws Exception{
       URL url = new URL("http://mpg-vertretungsplan.de/w/18/w00023.htm");
       InputStream is = (InputStream) url.getContent();
       BufferedReader br = new BufferedReader(new InputStreamReader(is));
       String line = null;
       StringBuffer sb = new StringBuffer();
       while((line = br.readLine()) != null){
         sb.append(line);
       }
       String htmlContent = sb.toString();
       System.out.println(htmlContent);
     CharSequence dt="Dienstag";
     CharSequence mt="Mittwoch";
     CharSequence keyword="fällt";
     boolean found = htmlContent.contains(keyword);
     if(found==true){
         System.out.println("Es gibt eine Fehlstunde!");
     }else{
         System.out.println("Es gibt keine Fehlstunde!");
     }

   }
}

我希望答案也是假的,如果

keyword 

之后
mt

在字符串中:

String htmlContent2 = "DienstagMittwochfällt";

您可以使用 String.indexOf(String substr) to get the position of the two delimiters in the String, then use String.substring(int beginIndex, int endIndex) 来获取它们之间的内容。

请注意 String.indexOf(String substr) returns 子字符串的起始位置,因此要计算 beginIndex 您需要添加第一个分隔符的长度。
此外,这些方法适用于 String 而不是 CharSequence,因此您必须将它们转换为 .toString()

检索到该子字符串后,像目前一样使用 .contains(CharSequence substr) 检查它是否包含搜索到的 CharSequence.

您可以看到它的实际效果 here

htmlContent.substring(htmlContent.indexOf("Mittwoch")).contains("fällt");

判断句子是否存在的方法有很多,例如:

使用包含()

String htmlContent = "DienstagfälltMittwochfällt";
String myString = "fällt";
if(htmlContent.contains(myString)) //contains method return true or false
{
System.out.println("myString is exist")
}

另一种方法是使用indexOf

if(htmlContent.indexOf(myString)>1)//returns an Integer if it is -1 that's mean the string doesn't exist, otherwise the string is exist
{
System.out.println("myString is exist")
}