【问题标题】:Convert input strings into int array将输入字符串转换为 int 数组
【发布时间】:2016-10-02 13:36:22
【问题描述】:

我想从控制台读取五个数字。为了将每个数字的输入字符串转换为 int[x],我尝试使用 for 循环。但事实证明,#1 增量是死代码,#2 我的数组没有初始化,即使我刚刚做了。 我正在进行我的第一次 Java 实践,很高兴听到一些建议。

我的代码:

public static void main(String[] args) throws IOException {

    System.out.println("Type in five Numbers");

    int [] array;       
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);

    for(int x=0; x<5; x++){

    String eingabe = br.readLine();

    array[x] = Integer.parseInt(eingabe);
    break;
    }

    reserve(array); }

【问题讨论】:

  • 你为什么在第一次迭代时break
  • 1) 是的,您的数组尚未初始化,array[x] 将如何工作,因为数组还没有大小? 2)你的循环中有一个break语句,所以它只会运行一次
  • 感谢您的回答。
  • @AndrewL。我的意图是等待每个数字,不知道我会以这种方式停止整个循环。

标签: java arrays input int


【解决方案1】:

首先,你没有初始化你的数组,你只是声明了一个数组变量(命名数组)。我强烈建议在继续之前阅读和练习 Java 的这个基本概念,否则你以后可能会感到困惑。你可以阅读更多关于术语声明、初始化和赋值here

正如 Andrew 指出的那样,另一个问题是您在循环的第一次迭代中使用了关键字 break。这个关键字会终止一段代码,所以你的循环只会运行一次然后就永远退出。


使用 Scanner 可以大大简化此代码。 Scanner 从指定位置读取输入。扫描仪的构造函数接受两个输入:System.in,用于计算机上的默认输入设备(键盘),或 File 对象,例如计算机上的文件。

默认情况下,扫描仪的分隔符设置为空白。分隔符指定连续标记之间的边界,因此,例如,如果您输入 2 3 5 5,然后运行循环并调用 scanVarName.nextInt() 方法,它将忽略空格并将该单行中的每个整数视为自己的令牌。

因此,如果我理解正确,您想读取用户的输入(可能会输入整数)并且您想将这些输入存储在一个整数数组中,对吗?如果您知道用户将输入多少个整数,则可以使用以下代码执行此操作。你可以先提示他们告诉你他们打算输入多少个整数:

// this declares the array
int[] array;       

// declares and initializes a Scanner object
Scanner scan = new Scanner(System.in); 

System.out.print("Number of integers: ");

int numIntegers = scan.nextInt();

// this initializes the array
array = new int[numIntegers];  

System.out.print("Enter the " + numIntegers + " integers: ");

for( int i = 0; i < numIntegers; i ++)
{
   // assigns values to array's elements
   array[i] = scan.nextInt();  
}

// closes the scanner
scan.close();     

然后,您可以使用 for-each 循环遍历数组中的项目并将它们打印出来,以确认上述代码按预期工作。

【讨论】:

  • 感谢您的帮助。我刚刚使用了你的代码,效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2016-08-14
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
相关资源
最近更新 更多