2016-09-20 105 views
-2

我正在讀取一個文件,並希望只打印以空格開頭的行和所有其他行,我想打印出「hi」。這是我現在擁有的。通過文件打印線循環匹配模式

while((first = frBr.readLine()) != null) { 

     if(first.startsWith(" ")) { 
      System.out.println(first); 
     } 
     else if((!(first.startsWith(" "))){ 
       System.out.println("Hi"); 

     } 
} 
+0

可以代替否則,如果((!只有其他{它不一樣的東西,使它的可讀性,什麼是你的問題嗎?請除此之外的事實,你」適當的請求 – HRgiger

+3

更新您的問題重新測試相同的條件兩次('else'已經這樣做了),你在這裏有問題嗎? – RealSkeptic

+0

如果第一個條件是錯誤的,那麼你可以假設第二個條件是真的,而不是重複測試 –

回答

0

對於else子句,您不需要額外的測試。

while ((first = frBr.readLine()) != null) { 
    if (first.startsWith(" ")) { 
     System.out.println(first); 
    } else { 
     System.out.println("Hi"); 
    } 
} 

注意,有可能是一個行開始的字符,如標籤\t),似乎空間,但不屬於空間。在這種情況下,您打印嗨而不是行。

如果您需要打印任何白字你可以使用isWhiteSpaceCharacter的方法行:

確定指定字符是根據Java的

這裏是空白代碼使用它。

while ((first = frBr.readLine()) != null) { 
    // Check also if first has at least one character 
    if (Character.isWhiteSpace(first.charAt(0)) { 
     System.out.println(first); 
    } else { 
     System.out.println("Hi"); 
    } 
}