約100の名前を持つ配列を作成しようとしています。名前は、ランダムに生成されたものではなく、選択したものにしたいです。したがって、配列の各位置には名前の文字列が保持されます。これを行うより簡単な方法はありArray[1] = "name; Array[2] = "name";
ますか?私が考えていた方法は、for ループを使用してデータ ファイルまたはテキスト ファイルから情報を取得することでしたが、その方法がわかりません。このタスクを達成する最も簡単な方法は何ですか?
7 に答える
行ごとに 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);
}
}
配列初期化子を使用できます:
配列初期化子は、配列を作成していくつかの初期値を提供するために、宣言で、または配列作成式の一部として指定できます。
{
これは、カンマで区切られた式のリストとして記述され、中かっことで囲まれます}
。
Array = new String[] {"name1", "name2", ..., "name100"};
これが宿題をテストするためだけの場合は、<
コマンド ライン ツールを使用してファイルと標準のスキャナーを渡すことができます。例
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
これはテストに適しています...
たぶん、このように。テキスト ファイルから読み取ることもできますが、より動的になりますが、より多くの労力が必要になります。
String[] myArray = {"Jon","Mike","Dave","Ed","Ted","Shirly","Jane","Robert"};//etc
すべての名前が既にテキスト ファイルにリストされている場合は、txt ファイルを解析して配列に入力するのが効率的な選択です。
ただし、すべての名前をデジタルでリストアップしていない場合 (別名、紙に書き留めている場合)、それらが変更されないことがわかっている場合は、コードに手動で追加するだけです。
ただし、これを行うことの欠点は、名前のリストを更新する必要がある場合、ハードコードよりも txt ファイルを処理する方がはるかに簡単であることです。
配列にハードコードされた値を入力する必要がある場合は、次を使用できます
String stringArray = new String[]{ "Name1", "Name2", ... };
提案どおりにファイルから取得する場合は、次のようなループを使用できます
String stringArray = new String[100];
for( int i = 0; i < stringArray.length; i++ ){
stringArray[i]=retrieveNextValueFromFile();
}
配列を初期化する最も簡単な方法は次のとおりです。
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()]);