1

約100の名前を持つ配列を作成しようとしています。名前は、ランダムに生成されたものではなく、選択したものにしたいです。したがって、配列の各位置には名前の文字列が保持されます。これを行うより簡単な方法はありArray[1] = "name; Array[2] = "name";ますか?私が考えていた方法は、for ループを使用してデータ ファイルまたはテキスト ファイルから情報を取得することでしたが、その方法がわかりません。このタスクを達成する最も簡単な方法は何ですか?

4

7 に答える 7

5

行ごとに 1 つの名前のファイルがある場合:

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);
    }
}
于 2012-05-02T21:26:42.030 に答える
2

配列初期化子を使用できます:

配列初期化子は、配列を作成していくつかの初期値を提供するために、宣言で、または配列作成式の一部として指定できます。{これは、カンマで区切られた式のリストとして記述され、中かっことで囲まれます}

Array = new String[] {"name1", "name2", ..., "name100"};
于 2012-05-02T21:21:45.563 に答える
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

これはテストに適しています...

于 2012-05-02T22:14:23.307 に答える
0

たぶん、このように。テキスト ファイルから読み取ることもできますが、より動的になりますが、より多くの労力が必要になります。

String[] myArray = {"Jon","Mike","Dave","Ed","Ted","Shirly","Jane","Robert"};//etc
于 2012-05-02T21:23:42.377 に答える
0

すべての名前が既にテキスト ファイルにリストされている場合は、txt ファイルを解析して配列に入力するのが効率的な選択です。

これを達成するために必要なものはすべてここにあります。

ただし、すべての名前をデジタルでリストアップしていない場合 (別名、紙に書き留めている場合)、それらが変更されないことがわかっている場合は、コードに手動で追加するだけです。

ただし、これを行うことの欠点は、名前のリストを更新する必要がある場合、ハードコードよりも txt ファイルを処理する方がはるかに簡単であることです。

于 2012-05-02T21:23:49.803 に答える
0

配列にハードコードされた値を入力する必要がある場合は、次を使用できます

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

提案どおりにファイルから取得する場合は、次のようなループを使用できます

String stringArray = new String[100];
for( int i = 0; i < stringArray.length; i++ ){
   stringArray[i]=retrieveNextValueFromFile();
}
于 2012-05-02T21:24:16.207 に答える
0

配列を初期化する最も簡単な方法は次のとおりです。

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

...しかし、ファイルから名前を読み取ることを計画している場合は、それを 1 つずつ保存する必要があります。

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()]);
于 2012-05-02T21:24:45.540 に答える