gpt4 book ai didi

java - 访问 Set Java 中的数据

转载 作者:行者123 更新时间:2023-12-01 13:06:57 26 4
gpt4 key购买 nike

我正在通过扫描仪访问 .txt 文件中的数据,该 .txt 文件如下所示:

001 City     5000.00 101
002 Capital 4000.00 101
003 Farm 1000.00 102

我需要像这样重新格式化:

Capital
City
Farm

101 9000.00
102 1000.00

我的代码到目前为止:

try{
Scanner scan = new Scanner(new File("C:\\Users\\Dustin\\Desktop\\test.txt"));
String[] strArray = new String[3];
TreeSet<String> ts = new TreeSet<String>();
while(scan.hasNextLine()){
ts.add(scan.nextLine());
//strArray[0] = scan.nextLine();
//StringTokenizer stkn = new StringTokenizer(strArray[0],",");
//System.out.println(stkn.nextElement());
//System.out.println(strArray[0]);
}
for(String s : ts){
System.out.println(s);
}catch(Exception e){
System.out.println("Error: "+e.getMessage());
}

但我不知道如何访问此数据的各个项目并添加到集合中,然后将这 101 个项目添加在一起。我对此很陌生,任何帮助将不胜感激。

最佳答案

您可以尝试执行以下操作:

从文本文件中读取数据并使用 .split(String regex) 对其进行分割方法:

try{
Scanner scan = new Scanner(new File("C:\\Users\\Dustin\\Desktop\\test.txt"));
TreeSet<String> ts = new TreeSet<String>();
while(scan.hasNextLine()){
String[] strArray = scan.nextLine().split("\\s+"); //the will yield an array having {"001", "City", "5000.00", "101"}

由于您想按 ID 分组,因此可以查看 HashMap 并添加这一行:Map<String, Double> map = new HashMap<String, Double>();

TreeSet<String> ts = new TreeSet<String>();
Map<String, Double> map = new HashMap<String, Double>()

当您从文件中读取数据时,您将检查是否已经读取了具有相同 ID 的值:

if(map.containsKey(strArray[3]))
{
map.put(strArray[3], map.get(strArray[3]) + Double.parseDouble(strArray[2].trim()));
}
else
{
map.put(strArray[3], Double.parseDouble(strArray[2].trim());
}

并将数据添加到您的集合中:

ts.add(strArray[1]);

准备好后,您将需要迭代该集合,然后打印其内容。完成后,您将需要迭代 map 并打印键值对。

话虽这么说,由于这两种数据结构都不适合排序,为了清楚起见,我建议您包含放入树集中的值的 ID:

ts.add(strArray[1] + "(" + strArray[4] + ")");

关于java - 访问 Set Java 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23190792/

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