Java can';t根据CSV中的值打印

Java can';t根据CSV中的值打印,java,csv,Java,Csv,我想根据csv中的值在命令行中打印行,这是我的代码: public static void view() throws IOException, FileNotFoundException { String path = "C:\\Users\\hayth\\eclipse-workspace\\pouch\\src\\pouch\\temp.csv"; String line =""; B

我想根据csv中的值在命令行中打印行,这是我的代码:

public static void view() throws IOException, FileNotFoundException {
        String path = "C:\\Users\\hayth\\eclipse-workspace\\pouch\\src\\pouch\\temp.csv";
        String line ="";
        
        BufferedReader bufferedReader = null;
        try {
            bufferedReader = new BufferedReader(new FileReader(path));
            removeBlank(path);
            while((line = bufferedReader.readLine()) != null) {
                String[] values = line.split(",");              
                if(values[0].trim() == "pencil") {
                    System.out.println("Item: " + values[0] + " \tBrand: " + values[1] + " \tLength: " + values[2]);
                } else if(values[0].trim() == "eraser"){
                    System.out.println("Item: " + values[0] + " \tBrand: " + values[1] + " \tShape: " + values[2]);
                } else {
                    System.out.println("Item: " + values[0] + " \tBrand: " + values[1] + " \tState: " + values[2]);
                }
                
                
            }
        } finally {
            if( bufferedReader != null) {
                bufferedReader.close();
            }
        }
    }
正如你们所看到的,不同的物体有不同的属性,所以我想要打印的线对于每个盒子应该是不同的,比如铅笔有品牌和长度,橡皮擦有品牌和形状等等

示例csv:

pencil,XX,10
eraser,YY,rectangle
sharpener,YY,new
pencil,YY,12
但我得到的结果是:

Item: pencil    Brand: XX       State: 10
Item: eraser    Brand: YY       State: rectangle
Item: sharpener         Brand: YY       State: new
Item: pencil    Brand: YY       State: 12

我可以看到,我无法比较数组值中的值,它正在执行else语句,但我似乎无法理解这个问题。我对Java相当陌生,如有任何帮助,将不胜感激。谢谢:)

将您的
值[0]更改为
值[0].trim()==“whatever”
行。trim().equals(“whatever”)
或者更好的是,
equalsIgnoreCase
<代码>=测试字符串是否引用相同的对象,而不是它们的值是否相等


另外,请参见

请使用
字符串#等于
而不是
=
谢谢,我已经完全忘记了引用和值等于。