输入缓冲区中的Java类型转换问题

时间:2018-01-11 21:36:28

标签: java bufferedreader

我有一个用于读取输入流的代码。但是当我将字符转换为Integer时,我收到错误

"方法Integer.parseInt(String,int)不适用       (实际和正式的参数列表长度不同)     方法Integer.parseInt(String)不适用       (参数不匹配; int不能转换为String)" ..这是代码

import java.util.*;
import java.io.BufferedReader;
import java.io.*;

class Abc{

    public static void main(String[] args){ 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int age = Integer.parseInt(br.read());
        String s = br.readLine();
        System.out.println(s);
        System.out.println(age); }
} 

1 个答案:

答案 0 :(得分:0)

因为br.read()已经返回一个int,所以不能将它强制转换为int。

此外,当您运行程序时,您将获得奇怪的输出,并且您将无法输入String s的值。以下代码使用int age = Integer.parseInt(br.readLine());代替int age = br.readLine(),问题已修复。

import java.util.*;
import java.io.*;

class Abc
{
    public static void main(String[] args) throws IOException
    { 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int age = Integer.parseInt(br.readLine());
        String s = br.readLine();
        System.out.println(s);
        System.out.println(age);
    }
}