2015-02-09 176 views
0

對不起,我的英文。我想爲自己找出一點,但我沒有得到。我希望在單詞的情況下使用該行輸出。但我有這樣的打印:如果我想找到一個字 - 一個在線是應用程序 - 進入修道院回家。它仍然輸出該行。而在這種情況下不想顯示。不等於符號(java)

public static void main(String[] args) throws FileNotFoundException { 
    String line = "line number ones"; 
    String word = "num"; 
    String myWord = ""; 
    int startWord = 0; 


    for(int i = 0; i < line.length()-1; i++) { 
     if(line.charAt(i) == word.charAt(startWord)) { 
      startWord++; 
      myWord += line.charAt(i); 

      if(myWord.equals(word)) { 
       if(startWord == word.length()) { 
        System.out.println(line); 
       } 
       startWord = 0; 
      } 
     } 
    } 
} 

由於需要進行額外的檢查。是這樣的:

if(Character.toString(line.charAt(i+1)) != any characters except space) { 
output line 
} 

結果會是這樣:

if(startWord == word.length() && Character.toString(line.charAt(i+1)) == " ") { 
         System.out.println(line); 
        } 

但它不工作。而且我們還必須考慮到,可以是一個點,一個逗號,只是行結束。怎麼做?

+1

怎麼辦呢?你給什麼輸入,你期望輸出什麼?你是什​​麼意思*還必須考慮到,可以是一個點,一個逗號,只是行結束*? – 2015-02-09 22:49:45

+1

我不確定你在做什麼......但我相信你可以用Pattern.match()完成它,看看這裏http://docs.oracle.com/javase/7/docs/api/java /util/regex/Pattern.html – 2015-02-09 22:54:02

+0

@ElliottFrisch對不起,我表達自己很清楚。我的意思是,如果有一個逗號,然後演繹線。例如:line - ** hellow,你好嗎**。字 - **你好**。在這種情況下,可以顯示該行。如果線 - **,你好嗎**。單詞 - ** doin **。它不應該顯示線。 – asdascascaedfa 2015-02-09 22:54:49

回答

1

您是否試圖檢查一個字符是否等於空格?如果是這樣,您不能在String上使用==,因爲它是一個對象。但是你可以在char上使用它。

所以兩種方法是這樣的:

String space = " "; 
if (space.equals (" ")) // true 

或者

char space = ' '; 
if (space == ' ') // true 

在您的例子,你可以這樣做:

Character.toString(line.charAt(i+1)).equals (" ") 
+0

Aааа...就是這樣。感謝U. – asdascascaedfa 2015-02-09 23:00:32

+1

完全沒問題:) – Rob 2015-02-09 23:03:46