.txt ファイルがあり、そこから char 配列に読み取りたいと考えています。
私が持っている.txtファイルに問題があります:
1 a
3 b
2 c
つまり、a[1]='a'、a[3]='b'、a[2]='c' です。
ファイルを読み取る際に、スペースを無視して改行を考慮するにはどうすればよいですか? ありがとう
.txt ファイルがあり、そこから char 配列に読み取りたいと考えています。
私が持っている.txtファイルに問題があります:
1 a
3 b
2 c
つまり、a[1]='a'、a[3]='b'、a[2]='c' です。
ファイルを読み取る際に、スペースを無視して改行を考慮するにはどうすればよいですか? ありがとう
Map
この種の問題には a の方が適しているため、代わりにa を使用することをお勧めします。
public static void main(String[] args) {
Scanner s = new Scanner("1 a 3 b 2 c"); // or new File(...)
TreeMap<Integer, Character> map = new TreeMap<Integer, Character>();
while (s.hasNextInt())
map.put(s.nextInt(), s.next().charAt(0));
}
に変換したい場合は、次の操作TreeMap
をchar[]
実行できます。
char[] a = new char[map.lastKey() + 1];
for (Entry<Integer, Character> entry : map.entrySet())
a[entry.getKey()] = entry.getValue();
ノート:
を使用するのがおそらく最も簡単Scanner
です。
ArrayList<String> a = new ArrayList<String>();
Scanner s = new Scanner(yourFile);
while(s.hasNextInt()) {
int i = s.nextInt();
String n = s.next();
a.add(n);
}
もちろん、これは大胆にも正しい入力を前提としています。あなたはもっと妄想的であるべきです。各行を特別に処理する必要がある場合は、 と を使用hasNextLine()
してから、String クラスのnextLine()
を使用して行を分割できます。split()