2016-05-03 29 views
0

首先我想说的是,我是Java中的noobie。 (对不起,如果答案很简单)。 我有一个字符串,其中包含以下内容:搜索两个CharSeqeces(Java)之间的CharSequences

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"; 
+0

为每'HTML'解析为'String'问题,更好的办法是使用,而不是处理'html'作为一个简单的'String'一个propper HTML解析器。 – SomeJavaGuy

+0

即使字符串只是纯文本,你会怎么做? – alexanders916

+0

我改变了我的问题,也许现在更一般了。 – alexanders916

回答

0

您可以使用String.indexOf(String substr)来获取String中两个分隔符的位置,然后使用String.substring(int beginIndex, int endIndex)来获取它们之间的内容。

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

一旦您检索到该子字符串,请使用.contains(CharSequence substr),因为您目前正在检查它是否包含搜索到的CharSequence

你可以看到它在行动here

+0

但它必须是CharSequence,因为我的文本没有任何占位符。 – alexanders916

+0

你对占位符的含义是什么?您可以使用其'.toString()'方法轻松地将'CharSequence'转换为'String'。 – Aaron

+0

我的意思是字符串在每个CharSequence之间没有空格。我改变了问题中的字符串以显示它。是的,它只能让我看到真实或错误。 – alexanders916

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

您可以用很多方法来检查,如果句子存在与否,例如:

使用载有()

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") 
} 
相关问题