0

私は本当に仕事に苦労しています。テキストファイルから配列にデータをロードする必要があります。データをJavaにロードして印刷することはできましたが、データを分割して別のクラスに渡す必要があります. 使用してみ.split(" ")ましたが、データは共通の量の空白を共有していないため、2 ロットのデータまたは空白だけを持つエントリで半分が満たされた巨大な配列になってしまいます。これが私がこれまでに持っているコードです:

import java.io.*;

public class Reader {

    int i= 0;
    int k=0;
    static String test;

    public static void main(String[] Args){ 

    String file ="1RainfallSample.txt";        

    //reading   
    try{
        InputStream ips=new FileInputStream(file); 
        InputStreamReader ipsr=new InputStreamReader(ips);
        BufferedReader br=new BufferedReader(ipsr);
        String line;
        while ((line=br.readLine())!=null){
        test+=line+"\n";
        }
        br.close(); 

    }       
    catch (Exception e){
        System.out.println(e.toString());
    } 

    // split(String Delimiter)
    String[] dataArray=test.split("\\s");
    System.out.println("Array :"+dataArray.length);
    for(int i=0;i<dataArray.length;i++)
    {
        System.out.println("array"+i+"  :"+dataArray[i]);
    } 

    }
}

以下は、あまりうまく説明できていないと思うので、データの小さな例です。

4   6.10   1.80   1.00  26.10   9.60   0.00   0.00   0.00 

0.00   0.00   3.10   0.30   0.20   0.40  0.00   0.00   0.00   0.00   0.00   0.00   

0.00   2.50   0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00 -99.992011

私はまったく間違った方法でアプローチしているように感じます。おわかりのように、私は優れたプログラマーではありません。正しい方向に微調整していただければ幸いです。

4

2 に答える 2

2

使用できます

String[] dataArray = test.split("\\s+");

余分な空白を取り除きます。

于 2013-05-11T16:31:21.643 に答える
1

または、データを整理したい場合は、重複するスペースを一致させて削除するか、単一のスペースに置き換えることができます。

まず、テキストが文字列変数にあることを確認してから、次のようにします。

Val = Val.replaceAll(" {2,}", " ");
于 2013-05-11T16:42:21.747 に答える