2012-03-25 10 views
1

私は現在、javaで指定されたファイルから複数の行の特定のデータを読み込もうとしています。線を有する例えばファイル内の行からデータを読み込みたい。 Javaで

iは、アレイ内の各ラインからの数値を格納したいの下、iは配列に行全体を読むことを望んでいないが(私は既にそれを行うことができる)

 Firstname 100700 Lastname 
     Firstname 260000 Lastname 
     Firstname 303000 Lastname 
     Firstname 505050 Lastname 

どのように私のシナリオで数値データを読み取ることができるプログラムに私のコードに何かを入れようとするとどうなりますか?(スペースはそこにあるはずです) BufferedReader input;

input = new BufferedReader(new FileReader("file.txt"));// file to be read from 
    String Line; 
    int i = 0; 
    int[]number=new int[4]; 
    while (Line != null) 
    { 
     Line = input.readLine(); 

     // Then i would need something down here to read the numerical values? 
     number[i]=???? 

     i++ 
    } 

助けてください。

ありがとうございました。

+0

はすべて特定の形式の行ですか? Stringの 'split'メソッドを使って行をトークンに分割し、数値トークンを' Integer.valueOf(string) 'を使って数値に変換することができます。 – twain249

+0

これはうれしいことですが、その行はすべて文字列です。 – user1058452

答えて

2

ハバの外観String.split()Integer.parseInt()です。

あなたのStringString[]に分割して、intとして番号を取得するためにInteger.parseInt(myArray[1])を使用するLine.split(" ")を使用することができます。 Javaで、大会は変数は小文字で始めるということですので、あなたはLine名前の変更を検討してください - >line

0

この

String line = input.readLine(); 
if (line != null) { 
    int number = Integer.parseInt(line.replaceAll("[^\\d]", "")); 
    ... 
} 
0

Scanner.hasNextInt().nextInt()を持って試してみてください。

も注意してください。それらを使って数字を読むことができます。そうでなければ、Patternクラスの正規表現を使うか、amitの提案を使うことができます。

1
input = new BufferedReader(new FileReader("file.txt"));// file to be read from 
String line; 
int i = 0; 
int[]number=new int[4]; 
while (line != null) 
{ 
    line = input.readLine(); 
    // here is my refinement 
    String[] x = line.Split(); 
    System.out.println("FirstName: " + x[0]); 
    System.out.println("Number: " + x[1]); 
    System.out.println("LastName: " + x[2]); 

    i++ 
} 
+0

お返事ありがとうございます。 String.Split()はありません。 (それは.split()でなければなりません。答えの 'code'部分にスペルミスがないことを確認してください。 – Jayan

関連する問題