2012-05-04 40 views
1

私は.txtファイルを持っており、それをchar配列に読み込みたいと思います。Java/.txtファイルから読み取る

私は私が持っている.txtファイルで、問題がある[2] =」、

1 a 

3 b 

2 c 

[1] = 'A' という意味で、[3] = 'B' c '。

どのようにファイルを読むには、私はスペースから無視し、新しい行を考慮する?おかげ

+0

あなたは 'char [] a'または' String [] a'を意味しますか? – dacwe

+0

@dacwe:char [] a –

+0

値はアルファベットの文字でも、整数でもかまいませんか? – sp00m

答えて

1

は、私はあなたがchar[]TreeMapを変換したい場合、それはこの種の問題:

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

に適しだからあなたができる代わりに、このためにMapを使用することをお勧め次

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

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

注:

  • このソリューションは、
  • 負のインデックスでは動作しません複数の
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()nextLine()を使用してから、split()を使用してStringクラスから行を分割することができます。

関連する問題