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