是否有一种简单的方法可以将项目列表输入数组,例如50-100?

时间:2012-05-02 21:19:07

标签: java arrays

我正在尝试创建一个包含大约100个名字的数组。我希望名称是我选择的而不是随机生成的名称。因此,Array的每个位置都将包含一个名称字符串。有没有比Array[1] = "name; Array[2] = "name";更简单的方法呢?我的想法是使用for循环从数据文件或文本文件中获取信息,但我不知道如何做到这一点。完成此任务的最简单方法是什么?

7 个答案:

答案 0 :(得分:5)

如果您有一个按行名称的文件:

public static String[] getArrayStringRandom() {
    try {
        List<String> list = new LinkedList<String>();
        FileReader fileReader = new FileReader("file.txt");
        BufferedReader in = new BufferedReader(fileReader);
        for (String name; (name = in.readLine()) != null;) {
            list.add(name);
        }
        in.close();
        fileReader.close();
        // Collections.shuffle(list); // Random permutes
        return list.toArray(new String[0]);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

答案 1 :(得分:2)

您可以使用array initializer

  

可以在声明中指定数组初始值设定项,也可以将其作为数组创建表达式的一部分,以创建数组并提供一些初始值。它被编写为以逗号分隔的表达式列表,用大括号{}括起来。

Array = new String[] {"name1", "name2", ..., "name100"};

答案 2 :(得分:0)

也许是这样的。从文本文件中读取它也可以工作,但需要更多的努力,尽管它会更有活力。

String[] myArray = {"Jon","Mike","Dave","Ed","Ted","Shirly","Jane","Robert"};//etc

答案 3 :(得分:0)

好吧,如果您已经在文本文件中列出了所有名称,那么解析txt文件并填充数组是一种有效的选择。

Here is everything you will need to accomplish it.

但是,如果您还没有以数字形式列出所有名称(例如,如果您将它们写在一张纸上)并且您知道它们不会更改,那么只需在代码中手动添加它们即可。

这样做的缺点是,如果您需要更新名称列表,则更容易处理txt文件而不是硬代码。

答案 4 :(得分:0)

如果需要使用硬编码值填充数组,可以使用

String stringArray = new String[]{ "Name1", "Name2", ... };

如果您想按照建议从文件中检索它,可以使用类似于

的循环
String stringArray = new String[100];
for( int i = 0; i < stringArray.length; i++ ){
   stringArray[i]=retrieveNextValueFromFile();
}

答案 5 :(得分:0)

初始化数组的最简单方法是:

String[] array = { "a", "b", "c", "d", "e" };

...但是如果您打算从文件中读取名称,则必须逐个存储:

List<String> list = new ArrayList<String>();
// ... read each name from the file
list.add(name);
// finally, convert the list to a String[]
String[] array = list.toArray(new String[list.size()]);

答案 6 :(得分:0)

如果这仅用于测试家庭作业,您可以使用<命令行工具传递文件和标准扫描仪。实施例

import java.util.Scanner;

public class Example {
  public static void main(String[] args){
    Scanner cin = new Scanner(System.in);
    String[] stringArray = new String[100];

    for(int i = 0; i < 100; i++)
      stringArray[i] = Scanner.nextLine();
  }
}

现在,如果您有一个包含每行名称的文件(filename.txt),请使用以下命令从cprompt调用该程序: java Example < filename.txt

这对测试很有用......