1

.txt ファイルがあり、そこから char 配列に読み取りたいと考えています。

私が持っている.txtファイルに問題があります:

1  a

3  b

2  c

つまり、a[1]='a'、a[3]='b'、a[2]='c' です。

ファイルを読み取る際に、スペースを無視して改行を考慮するにはどうすればよいですか? ありがとう

4

2 に答える 2

1

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));
}

に変換したい場合は、次の操作TreeMapchar[]実行できます。

char[] a = new char[map.lastKey() + 1];

for (Entry<Integer, Character> entry : map.entrySet())
    a[entry.getKey()] = entry.getValue();

ノート:

  • このソリューションは、負のインデックスでは機能しません
  • 複数の場合、「最初の」文字のみを取ります
于 2012-05-04T07:28:30.910 に答える
0

を使用するのがおそらく最も簡単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()

于 2012-05-04T07:29:23.700 に答える