读取文本文件并确定最昂贵购买的程序

A program that reads a text file and determines the most expensive purchase

我需要帮助的程序涉及读取一个 .txt 文件,其中包含 来自信用卡的交易,例如:杂货 50.36 美元,汽油 41.20 美元等,我需要找到最贵的物品并打印 item.I 的名称和价格,我在寻找获取和分辨哪个的方法时遇到问题一个是最贵的。我如何读取和获取整数并将它们与其余整数进行比较以查看哪个更大?

import java.io.*;
import java.util.*;

public class Transcation {

    public static void main(String[] args)throws IOException {
        Scanner console = new Scanner(System.in);
           System.out.println("Enter the directory of file: "); //ask for file
           String filename = console.nextLine();       //input directory of file

           File inputFile = new File(filename);        

           if(!inputFile.exists()){     //if it does not exist print error,end
               System.out.println("Transaction.txt not found");
               System.exit(0);
           }

           Scanner input = new Scanner(inputFile);  //reads and access the file
           String line;


                while(input.hasNext()){   //while its still has more lines loop
                    line = input.nextLine();    

                        //System.out.println(line); //prints the next line

                }         
          input.close();    //closes file

    }
}

您可以通过 ' ' 将字符串拆分为名称和值。将值解析为 double

像这样:

String[] parts = yourStringFromFileLine.split( " " );

// access the parts
String name = parts[ 0 ]; // name if item
double price = Double.parseDouble( parts[ 1 ] ); // price of item

将名称 Map 中的每一行保存为 key,将价格保存为 value

像这样:

Map<String, Integer> map = new HashMap<String, Integer>();
// add content to map
map.put( name , price );

读完文件后,遍历 Map 并找到 key 的最高 value

像这样:

double tempPrice = 0.0;

for ( Map.Entry<String, Integer> entry : map ) {
    if ( entry.getValue() > tempPrice ) {
        tempPrice = entry.getValue();
    }
}

最后tempPrice是所有参赛作品中的最高价。

希望这对您有所帮助。