gpt4 book ai didi

java - 从文本文件中获取数字列表,转换为单个字符串,然后用空格或逗号将该列表拆分为两个数组列表

转载 作者:行者123 更新时间:2023-12-01 14:45:05 25 4
gpt4 key购买 nike

所以标题有点罗嗦,所以我会尽力更好地解释我的问题。

所以基本上这个程序要做的是,获取从文本文件导入的一个大数字列表(按如下方式排序):

3679       87
196 60
17914 12
18618 64
2370 65
... ...
etc. (for 45 more lines),

然后将两列排序到两个不同的数组中,然后按整数值对它们进行排序。左列是商品 ID,右列是库存单位数。

到目前为止我已经尝试过:我尝试将整个列表放入单个字符串数组中,然后尝试将数组拆分为两个数组列表,并用每个逗号分隔它们。但我没能成功做到这一点。另外,我尝试在 for 循环中执行此操作,它会跳过逗号并将下一个值添加到两个不同的数组列表中。

这是我当前的代码:

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Store {

public static void main(String[] args) {

// **************Scanner s = new
// Scanner(input).useDelimiter("\\s*,\\s*");
ArrayList<Integer> numbers = new ArrayList<Integer>();
ArrayList<Integer> ids = new ArrayList<Integer>();
ArrayList<Integer> inventory = new ArrayList<Integer>();
ArrayList<String> numbersString = new ArrayList<String>();
try {
int x = 0;
int s = 0;
Scanner in = new Scanner(new File("file50.txt"));
in.useDelimiter(",");

while (in.hasNext()) {// grabs all numbers in text file
String f = in.next();
numbersString.add(f);
String toPrint = "";
for (int i = 0; i < numbersString.size(); i++) {
toPrint += numbersString.get(i) + " ";
}

String[] nums = toPrint.split("\\s+");
// System.out.println(toPrint);
System.out.print(Arrays.toString(nums));
// System.out.print(nums);
}

} catch (Exception i) {

i.printStackTrace();
}

}
}

如果有人可以帮助我并建议我应该做什么来实现我的目标,我将不胜感激。如果我仍然没有清楚地说明我想要做什么,请告诉我。我会尽力解释它

我不想复制和粘贴代码,只是想知道要做什么。

谢谢

最佳答案

首先,如果文本文件中的值以空格分隔,则删除 in.useDelimiter(","); .

从文件中读取一行时的第二件事,使用 String f = in.nextLine();而不是String f = in.next();

现在您将从文件中读取每一行,其中 ID 和库存商品以空格分隔。

现在如果你想分别获取ID和库存商品,你可以这样做:

String[] tokens = f.split(" "); //splits the input by spaces

现在您的 ID 为 tokens[0]以及库存商品tokens[1];

因此,每次读取一行时,用空格分隔它,然后您可以使用 tokens[0] 将 ID 添加到 ID 列表中并将库存添加到库存列表中,使用 tokens[1]

另一方面,我建议使用 Map其中 ID 是键,库存商品是值,而不是使用多个列表。

所以类似:

Map<String,String> map = new HashMap<String,String>();
map.put(tokens[0],tokens[1]);

如果代替 String如果您希望 ID 和库存商品为整数,您可以执行以下操作:

int ID = Integer.parseInt(tokens[0]);

关于java - 从文本文件中获取数字列表,转换为单个字符串,然后用空格或逗号将该列表拆分为两个数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508900/

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