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 回答