我需要帮助的程序涉及读取包含的.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
}
}
答案 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
是所有参赛作品的最高价。
希望这会有所帮助。