如何读取带有x和y值的.txt文件并将其转换为数组?

时间:2016-06-08 19:37:19

标签: java arrays plot linegraph

我需要将 .txt 文件转换为数组,然后将其绘制在图表中。 我的问题是:

我有一个包含x,y值的文本文件:

23, 92
26, 16
45, 14
32, 11
43, 17
46, 58

image here for x and y values

等......(这么多价值观)

我希望将其转换为数组:

double [] x= { 23, 26, 45, 32, 43, 46,...}
double [] y= { 92, 16, 14, 11, 17, 58,...}

这个数组将在图形中设置,但我需要先将它设置为数组,以便我绘制它。

我还没有这方面的代码。请帮忙:(

2 个答案:

答案 0 :(得分:1)

public class ReadFile{
    public static void main(String[] args){
        BufferedReader br  = new BufferedReader(new BufferedReader(new FileReader("pathToFile")));
        String line = "";
        // reading when each line has x, y
        while((line = br.readLine())!=null){
             String[] t = line.split(",");
             double x = Double.parseDouble(t[0].trim());
             double y = Double.parseDouble(t[1].trim());
             // store it in the array/list
             // or create a Class Pair having x & y coordinate      
        } 
    }
}

使用Pair类,它看起来像这样

class Pair{
   double x , y;
   Pair(double x , double y){
     this.x = x;
     this.y = y;
   }
}

// the reading logic
    public class ReadFile{
        public static void main(String[] args){
            List<Pair> pointList = new ArrayList<Pair>();
            BufferedReader br  = new BufferedReader(new BufferedReader(new FileReader("pathToFile")));
            String line = "";
            while((line = br.readLine())!=null){
                 String[] t = line.split(",");
                 double x = Double.parseDouble(t[0].trim());
                 double y = Double.parseDouble(t[1].trim());
                 // store it in the array/list
                 // or create a Class Pair having x & y coordinate
                 Pair p = new Pair(x,y);
                 pointList.add(p);       
            } 
        }
    }

答案 1 :(得分:1)

由于您不知道前面有多少个顶点,因此请考虑使用两个List集合代替两个数组。

这可以让您遵循以下算法:

  • 准备两个列表,listx和listy
  • 在循环中,读取两个整数,x和y
  • 如果两个整数不可用,请退出循环
  • 否则,将x添加到listx,将y添加到listy

循环结束后,您可以在两个并行集合中获得积分。