我試圖讀取數量不定的字符到我的數據結構中使用readChar()從algs4 StdIn.java。可能的輸入行數量也是未知的,應該忽略空格/製表符。while循環使用標準輸入
例如,樣品輸入
ABC D
EF
應當讀作
ABDCEF
到我的結構。
我很難找到一個合適的循環來獲取StdIn來執行我想要的操作,而不是讓我陷入無限循環。
我試圖讀取數量不定的字符到我的數據結構中使用readChar()從algs4 StdIn.java。可能的輸入行數量也是未知的,應該忽略空格/製表符。while循環使用標準輸入
例如,樣品輸入
ABC D
EF
應當讀作
ABDCEF
到我的結構。
我很難找到一個合適的循環來獲取StdIn來執行我想要的操作,而不是讓我陷入無限循環。
文件爲您提供了相當多的那個。只需使用readAllLines,然後通過StringBuffer.append()將它們合併爲一行即可。所以你迭代每一行,然後迭代每行中的每個字符。如果它不是空格,請將其附加到StringBuffer。最後打印出StringBuffer()的toString。該代碼有條款來處理換行符(\ n)並返回(\ r)。
ABC DEF
XYZ
它輸出:
ABCDEFXYZ
打字輸入之後,你將不得不敲Ctrl-Z(至少在Eclipse中運行Windows)來告訴STDIN類,有沒有更多的輸入
StringBuilder sb = new StringBuilder();
char c;
while (StdIn.hasNextChar()) {
c = StdIn.readChar();
if (c != '\n' && c != '\r' && c != ' ') { // plus add the unicode whitespace characters mentioned in the top comment
sb.append(c);
}
}
System.out.println(sb.toString());
你怎麼想它採取行動
與冉呢?它應該結束於角色嗎?它是否要求是/否的答案繼續?需要比這更多的細節。 – Ceelos
只有當沒有更多輸入被讀取時,循環纔會結束,即以空格開始的新行。 – TheNotoriousWMB