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

时间:2015-09-11 23:55:12

标签: credit-card

我需要帮助的程序涉及读取包含的.txt文件 来自信用卡的交易,例如:杂货50.36美元,天然气41.20美元等等,我需要找到最贵的商品并打印商品的名称和价格。我在找到方法获取并告诉哪一个是最昂贵的。我如何阅读并获取整数并将其与其余部分进行比较以查看哪个更大?

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

    }
}

1 个答案:

答案 0 :(得分:0)

您可以将' '的字符串拆分为名称和值。将值解析为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并找到value的最高key

像这样:

double tempPrice = 0.0;

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

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

希望这会有所帮助。