2014-01-29 39 views
-1

我必須從Java的標準輸入中讀取char(每次一個)。輸入將由多行(每個大約10000個字符)組成。我不需要存儲字符,它們在讀取時處理。另外,我需要跳過換行字符。可以有人建議我一個有效的方法來做到這一點?如何從Java中的標準輸入中讀取char

+0

使用'input.replaceAll()'方法並替換任何你想要的。 – NFE

+1

@NFE哪個包? – piyukr

+1

你到目前爲止所嘗試的... –

回答

1

也許這樣的事情會工作:

import java.io.IOException; 

public class Tester 
{ 
    public static void main(String args[]) 
     throws IOException 
    { 
     int ch; 
     while ((ch = System.in.read()) != -1) 
     { 
      if (ch != '\n' && ch != '\r') 
      { 
       processChar((char)ch); 
      } 
     } 
    } 


    private static void processChar(char c) 
    { 
     // do stuff 
     System.out.println("Processing: '" + c + "'"); 
    } 

} 
2

我想你需要這樣的東西。 用適當的替換#。

import java.io.InputStreamReader; 

public class Test022 { 

    public static void main(String[] args) throws Exception { 
     InputStreamReader br = new InputStreamReader(System.in); 
     char ch = ' '; 
     while (true){ 
      ch = (char)br.read(); 
      if (ch == '#') break; 
      else if (ch == '\n') continue; 
      else if (ch == '\r') continue; 

      System.out.println("Char read: " + ch); 
     } 
    } 


} 
+0

我需要在讀取EOF時打破循環。在Java中EOF如何表示? – piyukr

+0

@piyukr這是(-1)的整數值。 –