我的程序需要在SINGLE行输入尽可能多的整数。然后我的程序必须取用户输入的第一个整数来确定它是否在范围内。如果NOT输出错误,如果是,则执行指定的转换。然后移动到用户输入的SECOND整数(如果有的话)。
到目前为止我解决这个问题的方法是......
System.out.print("Enter a digit(s). ");
//Gets input numbers and stores them as a whole string
//e.g if enters 1 2 3 input will = "1 2 3"
String input = kbd.nextLine();
//Splits the input at every space and stores them in an array
//e.g If input = "1 2 3", numbers {"1", "2", "3"}
String[] numbersString = input.split(" ");
//Creates an array the same length as our String array
//How we will store each number as an integer instead of a string
int[] numbers = new int[numbersString.length];
//a loop that goes through the array as a string
for ( int i = 0; i < numbersString.length; i++ )
{
// Turns every value in the numbersString array into an integer
// and puts it into the numbers array.
numbers[i] = Integer.parseInt(numbersString[i]);
}
我的问题是我不知道如何获取输入的第一个整数然后再输入第二个等等...(我不理解如何访问我从用户获得的整数数组和从1操纵它们 - 有多少人进入。
答案 0 :(得分:0)
您以与构建阵列相似的方式访问阵列。例如,要打印出阵列,您可以这样做:
for ( int i = 0; i < numbers.length; i++ )
{
System.out.println(numbers[i]);
}
请注意for循环与您发布的代码中的最后一个for循环几乎相同。唯一的区别是numbers.length
,因为您要迭代numbers
数组。
您还应该花时间了解增强的for循环,这样可以更轻松地迭代数组。
答案 1 :(得分:0)
这样的事情:
for(int number : numbers) //iterates through each number in the array of numbers
{
if(number > 4 && number < 10) //or whatever range you wanted
{
number *= 2; //or whatever conversion you wanted
System.out.println(number);
}
}
这使用了上面评论中提到的增强型for循环。变量数(单数)是数组中的每个int。