Java 最低和最高价格的产品(数据从文本文件中读取)

Java 最低和最高价格的产品(数据从文本文件中读取),java,arrays,io,inputstream,filestream,Java,Arrays,Io,Inputstream,Filestream,输入文件: 糖1.2;三十 牛奶;4.5;一百 谷物;3.2;二百 在输出文件中,我必须打印最低和最高价格(牛奶和糖)的产品。 我的程序以最高价格打印产品,但以最低价格打印谷物 主类: public class Lab3 { public static void main (String[ ] args) throws IOException { double max=0, min=10000000; Product p_min=new P

输入文件: 糖1.2;三十

牛奶;4.5;一百

谷物;3.2;二百

在输出文件中,我必须打印最低和最高价格(牛奶和糖)的产品。
我的程序以最高价格打印产品,但以最低价格打印谷物

主类:

public class Lab3 
{ 
    public static void main (String[ ] args) throws IOException
    { 
        double max=0, min=10000000;

        Product p_min=new Product("",0.0,0);
        Product p_max=new Product("",0.0,0);
        BufferedReader in=new BufferedReader (new InputStreamReader(new      FileInputStream("C:\\Users\\Timotei\\Desktop\\in.txt")));
        PrintStream out=new PrintStream(new  FileOutputStream("C://Users//Timotei//Desktop//out.txt"));
        String line;          
        while((line=in.readLine())!=null)
        {

            String[] array=line.split(";");
            String name=array[0];
            double price=Double.valueOf(array[1]);
            int quantity=Integer.valueOf(array[2]);
            if(price>max)
            {
                max=price;
                p_max=new Product(name,price,quantity); 
            }
            if(price<min)
            {
                min=price;
                p_min=new Product(name,price,quantity);
            }
        }
        out.println("Product with maximum price is:"+p_max);
        System.out.println("Product with maximum price is:"+p_max); 
        System.out.println("Product with minimum price is:"+p_min);
        out.println("Product with minimum price is:"+p_min);
        in.close();
        out.close();
    }
}

您应该替换此:

if(price<max)
    min=price;

if(price)并更好地缩进您的代码,结构不清晰。尝试使括号的使用更加一致以增加可读性:始终使用或从不使用括号,但始终遵循相同的规则。我已更新了代码,但仍然不起作用。在输出时,它以最低价格将谷物打印为产品。不应该有“其他”但是有两个不同的if块。你的文件的第一个条目是sugar,在我们遇到milk之前,它应该同时被计算为p_max和p_min。非常感谢,我已经解决了这个问题(我更新了代码)我是新的,我没有15个声誉:(.一旦我有了,我会投票:D
if(price<max)
    min=price;
if(price<min)
    min=price;