我是一名初级程序员,任务是创建一个程序,提示用户输入元素数量,然后将其存储到字符串数组中。作业的第二部分是按升序列出数组。但我对第一部分有点卡住了。如果用户输入在输入第三个字符串后将有 3 个元素,我会收到越界异常。下面是代码。
import java.util.*;
public class arrays
{
public static void main(String[]arg)
{
Scanner input = new Scanner(System.in);
//Read user input.
System.out.print("How many Elements? ");
int num = input.nextInt();
String array[]= new String[num];
for (int i = 1 ; i <= num; i++ )
{
System.out.print("Enter element "+ i +": ");
array[i] = input.next();
}
System.out.println(array);
}
}
最佳答案
数组索引从 0
开始,因此您的循环应如下所示:
for (int i = 0 ; i < num; i++ )
{
System.out.print("Enter element "+ (i+1) +": ");
array[i] = input.next();
}
请注意,我还在 System.out.print
中添加了 +1
以显示“用户友好”输出(例如“Enter element 1:”而不是“Enter元素 0:"表示第一个元素)。
另一种选择是在访问数组时减去 1
,这将允许您保留现有的 System.out.print
行:
for (int i = 1 ; i <= num; i++ )
{
System.out.print("Enter element "+ i +": ");
array[i - 1] = input.next();
}
尽管我觉得这种做法不太常见。
关于java - 将字符串输入到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29374428/