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