java - 将字符串输入到数组中

标签 java arrays string

我是一名初级程序员,任务是创建一个程序,提示用户输入元素数量,然后将其存储到字符串数组中。作业的第二部分是按升序列出数组。但我对第一部分有点卡住了。如果用户输入在输入第三个字符串后将有 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/

相关文章:

string - 如何在 PostScript 中获取字符串的高度度量?

java - 模拟异常

c - 在函数中交换两个数组的指针

javascript - JS - 数组的总和列表(文本字段中的总和名称)

Java数组分割字符串

c - 如何在调用 atoi 之前将指针设置为 NULL

Java自动-"Refresh"函数

java - 带有部分标题的 Android GridView

java - 使用 Apache Commons-Imaging/Sanselan 更新 Tiff-Metadata

sql - 数组中时间戳之间的平均间隔