我想只显示文本文件中最大的数字(价格)。每次它向我显示整数而不是最高值。我一直在使用很多方法,比如for循环和其他方法。但我认为问题在于其他问题。
package practice;
import java.util.Scanner;
import java.io.*;
public class Practice {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
String fileName = "C:\\Users\\Work\\Desktop\\Prices.txt";
File inFile = new File(fileName);
Scanner inPut = new Scanner(inFile);
String line = inPut.nextLine();
while(inPut.hasNext()){
String[] Company = new String[3];
int[] Price = new int[3];
int[] Quality = new int[3];
int count = 0;
count++;
Company[count] = inPut.next();
Price[count] = inPut.nextInt();
Quality[count] = inPut.nextInt();
int HighestPrice = Price[0];
int counter = 1;
while(counter<Price.length-1){
if(Price[counter]>HighestPrice){
HighestPrice = Price[counter];
int hi = counter;
}
counter++;
}
System.out.println(HighestPrice);
}
}
}
答案 0 :(得分:0)
在数组中输入后关闭循环体 您应该在循环外创建数组,因为每次重新创建它们时它们的引用都会丢失。
String line = inPut.nextLine();
String[] Company = new String[3];
int[] Price = new int[3];
int[] Quality = new int[3];
int count = 0;
while(inPut.hasNext()){
Company[count] = inPut.next();
Price[count] = inPut.nextInt();
Quality[count] = inPut.nextInt();
count++;
}
答案 1 :(得分:0)
您可以使用代码查找while(inPut.hasNext()){
块内的最大数字。因为while(counter<Price.length-1){
循环在每一行都被执行,因此只有一个值要处理,当然每次都是最大值。
跳过第二个循环并仅执行内部代码,将System.out.println(HighestPrice);
放在外部循环之外它应该可以工作。