2014-01-29 35 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)的整数值。 –