如何将Array中的某些元素(String)放入一个新数组(Integer)?

时间:2018-03-14 10:14:57

标签: java arrays

所以我有一个看起来像这样的文本文件

4
10 orange
20 grape 
100 Pencil Cases
4 Card 

第一行是对象的数量。下一行是对象的价格和名称。我必须找到价格最低的对象,并只返回对象的名称。 (所以,在这种情况下" 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的新手,所以如果我的问题(或我的语法也有问题),我很抱歉!

1 个答案:

答案 0 :(得分:3)

  

我试图将数字放入一个新的整数数组来比较它们

这是你如何做到的。

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]

但是,有了这个,您无法获得具有最高价格的商品名称。因此,您需要将名称和价格存储在一起,我将把它留给您。