将数据从文本文件加载到数组中

时间:2013-05-11 16:29:25

标签: java arrays split

我真的在努力工作,我需要将数据从文本文件加载到数组中,我已经设法将数据加载到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

我觉得我接近这一切都是错误的方式,我不是一个优秀的程序员,你可以说,只要在正确的方向上轻推就会受到赞赏。

2 个答案:

答案 0 :(得分:2)

您可以使用

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

去除多余的空白区域。

答案 1 :(得分:1)

或者,如果您想整理数据,可以匹配重复的空格并将其删除或替换为单个空格。

首先确保您的文本在字符串变量中,然后:

Val = Val.replaceAll(" {2,}", " ");