Java 将数据从文本文件加载到数组中
我正在努力完成一项工作,我需要将数据从一个文本文件加载到一个数组中,我已经设法将数据加载到java并打印出来,但是现在需要将数据拆分并传递到另一个类。我尝试使用Java 将数据从文本文件加载到数组中,java,arrays,split,Java,Arrays,Split,我正在努力完成一项工作,我需要将数据从一个文本文件加载到一个数组中,我已经设法将数据加载到java并打印出来,但是现在需要将数据拆分并传递到另一个类。我尝试使用.split(“”),但数据不共享相同数量的空白,因此我最终得到了一个巨大的数组,其中一半由包含两个数据量或仅一个空白的条目填充。以下是我目前掌握的代码: import java.io.*; public class Reader { int i= 0; int k=0; static String test;
.split(“”
),但数据不共享相同数量的空白,因此我最终得到了一个巨大的数组,其中一半由包含两个数据量或仅一个空白的条目填充。以下是我目前掌握的代码:
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]);
}
}
}
我觉得我的方法不对,正如你所说,我不是一个好的程序员,只要朝着正确的方向轻推一下就好了。你可以使用
String[] dataArray = test.split("\\s+");
以消除多余的空白。您可以使用
String[] dataArray = test.split("\\s+");
清除多余的空白。或者,如果要整理数据,可以匹配重复的空格并删除它们,或者替换为单个空格 首先确保文本位于字符串变量中,然后:
Val = Val.replaceAll(" {2,}", " ");
或者,如果要整理数据,可以匹配重复的空间并将其删除或替换为单个空间 首先确保文本位于字符串变量中,然后:
Val = Val.replaceAll(" {2,}", " ");
首先更改test+=line+“”因为您需要delimeter的空间。并且您可以在split内部使用regex。对于spaces.split(“\s+”),它将使用空格作为splitfirst change test+=line+”,因为您需要delimeter的空间。并且您可以在split内部使用正则表达式。对于空格。split(“\s+”)它将使用空格作为split。你们这些家伙回答问题很快!:)程序员有太多的空闲时间。哈哈,对你们两个来说都很好,这是一种享受。我现在有一个760个ish条目的数组,而不是3000个ish条目的数组,现在来研究如何将这些数据传递给days类:p。非常感谢。我想问的一个后续问题是如何将字符串数组转换为浮点,“public float[](string dataArray[i]);“我尝试将其放入for循环,但没有结果:\@earlemongrab:您可以声明一个
float[]floatArray=new float[dataArray.length]
并使用floatArray[i]=float.valueOf(dataArray[i])
。天哪,你们这些家伙回答问题很快!:)程序员有太多的空闲时间。哈哈,对你们两个来说都很好,这是一种享受。我现在有一个760个ish条目的数组,而不是3000个ish条目的数组,现在来研究如何将这些数据传递给days类:p。非常感谢。我想问的一个后续问题是如何将字符串数组转换为浮点,“public float[](string dataArray[i]);“我尝试将其放入for循环,但没有结果:\@earlemongrab:您可以声明一个float[]floatArray=new float[dataArray.length]
并使用floatArray[i]=float.valueOf(dataArray[i])
。谢谢@ridoy。我不知道如何在移动应用程序上标记代码块。谢谢@ridoy。我不知道如何在移动应用程序上标记代码块。