8

BufferedReader を使用する場合、文字列を 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 reader = new BufferedReader(new InputStreamReader(System.in));
 String input = reader.readLine();
 int n=Integer.parseInt(input);
于 2013-05-22T10:03:25.353 に答える
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 に答える
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 に答える