在java中使用if时在无限循环中进行堆栈

在java中使用if时在无限循环中进行堆栈,java,while-loop,infinite-loop,Java,While Loop,Infinite Loop,我有一个程序,它应该从导入的TXT中读取数据,并将每一行转换为基于“艺术”或珠宝的变量 文件导入工作正常,行列表也工作正常 问题是,当我尝试将列表中的字符串与“ART”进行比较时,它将不匹配。 但棘手的是,我用打印输出打印字符串,它实际上给了我字符串“艺术” 产量 System.out.println(type); System.out.println(stringList.size()); 是 我在if循环中插入了一个“System.out.println(art)”,但它没有被打印,这意味

我有一个程序,它应该从导入的TXT中读取数据,并将每一行转换为基于“艺术”或珠宝的变量

文件导入工作正常,行列表也工作正常

问题是,当我尝试将列表中的字符串与“ART”进行比较时,它将不匹配。 但棘手的是,我用打印输出打印字符串,它实际上给了我字符串“艺术”

产量

System.out.println(type);
System.out.println(stringList.size());

我在if循环中插入了一个“System.out.println(art)”,但它没有被打印,这意味着它永远不会进入它

所以我真的不知道什么时候

“System.out.println(type)”=ART,那么为什么if(type==ART)不起作用呢


这真的很奇怪,有人能帮我吗?

你需要增加你的变量i。

问题已经出现:

1。您没有增加变量i,因此,虽然
(i
将永远不会是
flase
。 因此,您需要增加
i
变量

2“问题是,当我尝试将列表中的字符串与“ART”进行比较时,它将不匹配。” 因为您需要使用
equals()
来比较两个字符串,而不是
=

为什么

1equals()重新比较您要查找的内容

2==如果引用正在查看同一位置,请比较引用


你从不增加i。因此,i保持在原始值,而你的while循环将永远运行

Walt Richman’s Estate Collection    
5    
ART    
Water Lilies    
JEWELLERY   
Diamond Solitaire in White Gold    
System.out.println(type);
System.out.println(stringList.size());
"ART" and "36"and it is in a infinity loop.