gpt4 book ai didi

java - 将文本文件java中的数字添加到arraylist

转载 作者:行者123 更新时间:2023-11-30 11:29:07 24 4
gpt4 key购买 nike

我的数据文件看起来像这样(第一列-x;第二列-y;第三种类型):

    46    80     2
95 75 2
78 85 2
59 54 1
81 52 2
57 78 1
72 46 2

我试图根据点的类型将 x 和 y 坐标保存在两个不同的点数组列表中。

import java.util.*;
import java.util.ArrayList;
import java.io.*;
import java.awt.Point;

public class program {

public static void main(String []args) {
ArrayList knots = new ArrayList<Point>();
ArrayList zeros = new ArrayList<Point>();
List<Integer> list = new ArrayList<Integer>();
String line = null;
String file = "hepatitis_data1.txt";
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(file));
while((line = reader.readLine()) != null) {
String tmp[] = line.split(" +");

System.out.println(line);
for (String s:tmp) {
s = s.trim();
if(s.length() > 0) {
int i = Integer.parseInt(s.trim());
int r = Integer.parseInt(tmp[1].trim());
int g = Integer.parseInt(tmp[2].trim());
if (tmp[3].equals("1")) {
knots.add(new Point(r,g));
}
else if(tmp[3].equals("2")) {
zeros.add(new Point(r,g));
}
}
}
}

catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

int total = knots.size() + zeros.size();
System.out.println("knot size" + knots.size());
System.out.println("zero size" + zeros.size());
System.out.println("total size" + total);

}
}

它没有显示任何错误,但它也没有做正确的事情。总值应该是 83,因为我有 83 对 x-y 坐标,但总数是 240。有帮助吗??

最佳答案

您正在执行 while 语句来读取文件,并在其中为每一行执行一个 for 循环。对于每一行,for 循环都发生了 3 次(!!!!),这正是问题所在。做:

import java.util.*;
import java.util.ArrayList;
import java.io.*;
import java.awt.Point;

public class program {

public static void main(String []args) {
ArrayList knots = new ArrayList<Point>();
ArrayList zeros = new ArrayList<Point>();
List<Integer> list = new ArrayList<Integer>();
String line = null;
String file = "hepatitis_data1.txt";
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(file));
while((line = reader.readLine()) != null) {
String tmp[] = line.split(" +");

System.out.println(line);
String s = tmp[0];
s = s.trim();
if(s.length() > 0) {
int i = Integer.parseInt(s.trim());
int r = Integer.parseInt(tmp[1].trim());
int g = Integer.parseInt(tmp[2].trim());
if (tmp[3].equals("1")) {
knots.add(new Point(r,g));
}
else if(tmp[3].equals("2")) {
zeros.add(new Point(r,g));
}
}
}

catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

int total = knots.size() + zeros.size();
System.out.println("knot size" + knots.size());
System.out.println("zero size" + zeros.size());
System.out.println("total size" + total);

}
}

关于java - 将文本文件java中的数字添加到arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18584590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com