在两个 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")
}
首先我想说,我是 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")
}