所以我有一个看起来像这样的文本文件
4
10 orange
20 grape
100 Pencil Cases
4 Card
第一行是对象的数量。下一行是价格和对象的名称。我必须找到价格最低的对象并只返回对象的名称。 (因此,在本例中为“卡片”)
我将 txt 放入 Arraylist 并将其拆分,这样我只能得到数字。我正在尝试将数字放入一个新的整数数组中以进行比较。这是我试过的代码。
public class Assignment {
public static void main(String[] args) {
try {
BufferedReader rd = new BufferedReader(new FileReader("C:\\Users\\USER\\Documents\\input.txt"));
List<String> lines = new ArrayList<String>();
String line = null;
while ((line = rd.readLine()) != null)
{
lines.add(line);
}
rd.close();
for (int i =0; i<lines.size(); i++) {
String[] items = lines.get(i).split(" ", 2);
for (String s: items) {
System.out.println(s);
}
int[] array2 = new int[items.length];
int k =0;
for (int n= 2; n< items.length; n=n+2) {
array2[k] = Integer.parseInt(items[n]);
for (Integer l: array2) {
System.out.println(l); }
}
}
}
catch (Exception e) {
System.out.println("Error");
}
}
}
我认为 array2 部分有问题。有人可以提示我应该如何解决这个问题吗? stackoverflow 和 Java 的新手,所以如果我的问题(或我的语法也...)有问题,我很抱歉!
最佳答案
I am trying to put the numbers into a new integer array to compare them
这是您可以做到的。
int[] array2 = new int[lines.size() - 1];
int k = 0;
for (int i = 1; i < lines.size(); i++) { //Start at row 1
String[] items = lines.get(i).split(" ", 2);
array2[k++] = Integer.parseInt(items[0]); //The first element is the price
}
System.out.println(Arrays.toString(array2)); //[10, 20, 100, 4]
但是,有了这个,您无法获得最高价商品的名称。因此,您需要将名称和价格一起存储,我会留给您。
关于java - 如何将数组中的某些元素(字符串)放入新数组(整数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49275022/