8

使用 BufferedReader 时如何将 String 转换为 int?据我记得,它如下所示:

System.out.println("input a number");

int n=Integer.parseInt(br.readLine(System.in));

但由于某种原因,它不起作用。

错误消息说:

没有找到合适的方法readLine(java.io.InputStream)

它还说不br.readLine适用

4

6 回答 6

19

需要InputStreamReader在构造函数中为BufferedReader. 将InputStreamReader字节流转换为字符流。正如其他人所提到的,要认识到可以从这段代码中抛出的异常,例如 IOException 和 NumberFormatException。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("input a number");
int n = Integer.parseInt(br.readLine());
于 2013-05-22T09:58:26.030 回答
1

使用时,BufferedReader您必须注意它可能抛出的异常。此外,如果您提供的Integer.parseInt(String s)内容无法转换为.NumberFormatExceptionStringInteger

try {
   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
   while ((thisLine = br.readLine()) != null) {
     System.out.println(thisLine);
     Integer parsed = Integer.parseInt(thisLine);
     System.out.println("Parsed integer = " + parsed);
   } 
 } catch (IOException e) {
    System.err.println("Error: " + e);
 } catch (NumberFormatException e) {
    System.err.println("Invalid number");
 }
于 2013-05-22T09:58:48.127 回答
1

尝试这个

BufferedReader br = new BufferedReader(System.in);
String a=br.readLine()
Integer x = Integer.valueOf(a);
System.out.println(x);//integer value
于 2013-05-22T09:59:25.690 回答
1

试试这个方法

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
 String input = reader.readLine();
 int n=Integer.parseInt(input);
于 2013-05-22T10:03:25.353 回答
0

尝试这个:

  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
   System.out.println("input a number");
try{  
    int n = Integer.parseInt(br.readLine());
    } catch (IOException e) {e.printStackTrace();}
于 2013-05-22T09:58:34.370 回答
-1
DataInputStream br=new DataInputStream(System.in);
System.out.println("input a number");
int n=Integer.parseInt(br.readLine(System.in));
于 2014-12-23T08:01:43.380 回答