使用BufferedReader时如何将String转换为int? 据我所知,它的内容如下:
System.out.println("input a number");
int n=Integer.parseInt(br.readLine(System.in));
但由于某种原因,它不起作用。
错误消息显示:
找不到readLine(java.io.InputStream)
它还说br.readLine
不适用
答案 0 :(得分:16)
需要在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());
答案 1 :(得分:1)
使用BufferedReader
时,您必须处理它可能引发的异常。此外,如果您提供的Integer.parseInt(String s)
无法转换为NumberFormatException
,则String
方法可能会抛出Integer
。
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");
}
答案 2 :(得分:1)
试试这个
BufferedReader br = new BufferedReader(System.in);
String a=br.readLine()
Integer x = Integer.valueOf(a);
System.out.println(x);//integer value
答案 3 :(得分:1)
试试这种方式
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String input = reader.readLine();
int n=Integer.parseInt(input);
答案 4 :(得分: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();}
答案 5 :(得分:-1)
DataInputStream br=new DataInputStream(System.in);
System.out.println("input a number");
int n=Integer.parseInt(br.readLine(System.in));