从用户获取输入字符串并将其存储到字符串数组中

时间:2019-09-21 15:35:45

标签: java

有人可以帮我解决这个问题吗?我想将来自用户的输入存储为字符串数组。错误是:Java.lang,String connot be converted into string.String

这是我的代码:

Scanner input = new Scanner(System.in);
int nSize;
System.out.println("Enter size of array to store data..:");
nSize = input.nextInt();

String[] names= new String[nSize]; // name array
int[] phone= new int[nSize]; //phone array
for ( int i = 1; i <= nSize;i++)
{
    System.out.println("Enter name..:");
    names[i] = input.next();
    System.out.println("Enter phone number.:");
    phone[i] = input.nextInt();
}

3 个答案:

答案 0 :(得分:0)

我运行了您的代码,但没有遇到您在问题中描述的问题。

但是,我确实找到了同一行的问题,这很可能是您解决问题的方法。 (不匹配错误)

您应该使用names[i] = input.next();而不是names[i] = input.nextLine();,否则,它将返回一个空字符串。

答案 1 :(得分:0)

cuechange

答案 2 :(得分:0)

执行代码后,我没有看到您提到的错误。同样,所需的输出有点模糊。 但是,我尝试使用 BufferedReader 来实现我从中解释的内容,

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    int nSize;
    System.out.println("Enter size of array to store data..:");
    try {
        nSize = Integer.parseInt(reader.readLine());
        String[] names = new String[nSize]; // name array
        long[] phone = new long[nSize]; // phone array
        for (int i = 0; i < nSize; i++) {
            System.out.println("Enter name..:");
            names[i] = reader.readLine();
            System.out.println("Enter phone number.:");
            phone[i] = Long.parseLong(reader.readLine());

        }
    } catch (NumberFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

检查是否有帮助。