2016-11-23 61 views
0

我有這樣閱讀java中像C++字符?

... 
... 
..# 

如果c中讀取輸入++它會像:

int main() { 
    char c; 

    int n = 9; 

    while(n--) { 
     cin >> c; 
    } 
    return 0; 
} 

但在Java中我曾嘗試這樣做:

public static void main(String args[]) { 

    Scanner s = new Scanner(System.in); 
    int n = 9; 
    char c; 
    while(n--) { 

     c = s.next().chartAt(0); 

    } 

} 

它跳過點,我意味着它只讀取每行的第一個點。

每個點之間沒有空格。

+1

實際上,C++代碼不會讀取所有數據。您忘記了換行符。另外,我建議你回去閱讀Javadoc for'Scanner#next()'。 –

+1

使用'readLine()'讀取整行,然後通過調用'toCharArray()'獲得一個字符數組' – TheLostMind

+1

'java Scanner'的第一個Google結果:https://docs.oracle.com/javase/7/docs /api/java/util/Scanner.html *掃描程序使用分隔符模式將輸入分爲標記,默認情況下,分隔符與空白匹配。然後可以使用各種下一個方法將生成的標記轉換爲不同類型的值。*爲什麼不使用System.in.read – TungstenX

回答

0

當我在很久以前學習Java,我一直用這個方法來讀取單個字符:

char c = s.findWithinHorizon(".", 0).charAt(0); 

其中s是掃描儀。

經過一番測試,我發現這不會讀新的行字符!所以這段代碼有效!

String input = "...\n...\n..#"; 
Scanner s = new Scanner(input); 
for (int i = 0 ; i < 9 ; i++) { 
    char c = s.findWithinHorizon(".", 0).charAt(0); 
    // do whatever you want with c here 
}