我真的在努力工作,我需要将数据从文本文件加载到数组中,我已经设法将数据加载到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
我觉得我接近这一切都是错误的方式,我不是一个优秀的程序员,你可以说,只要在正确的方向上轻推就会受到赞赏。
答案 0 :(得分:2)
您可以使用
String[] dataArray = test.split("\\s+");
去除多余的空白区域。
答案 1 :(得分:1)
或者,如果您想整理数据,可以匹配重复的空格并将其删除或替换为单个空格。
首先确保您的文本在字符串变量中,然后:
Val = Val.replaceAll(" {2,}", " ");