Java try块中的if条件始终为真,即使它不应为´;T
我想管理if条件下的命令是否只显示在文件“Fleisch.txt”中,用于从方法“zutat1”输入的字符串。无论zutat1中的输入是什么,它总是显示出来Java try块中的if条件始终为真,即使它不应为´;T,java,Java,我想管理if条件下的命令是否只显示在文件“Fleisch.txt”中,用于从方法“zutat1”输入的字符串。无论zutat1中的输入是什么,它总是显示出来 public String zubezut1() { String zz1; zz1 = zutat1; //String[] zubereitung = {"Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato"};
public String zubezut1() {
String zz1;
zz1 = zutat1;
//String[] zubereitung = {"Apple","Mango","Peach","Banana","Orange","Grapes","Watermelon","Tomato"};
//String random = (zubereitung[new Random().nextInt(zubereitung.length)]);
try{
BufferedReader in = new BufferedReader(new FileReader("Fleisch.txt"));
String zeile = zutat1;
if (zeile.matches(zutat1)) {
System.out.print(zutat1 + "_in_mudgerechte_Stücke_schneiden_und_in_der_Pfanne_scharf_anbraten");
} // end of if
}
catch (IOException e) {
e.printStackTrace();
}
return zz1;
}
问题是您基本上是将
zeile
设置为与zutat1
相同的字符串!
因为它们都包含(或者说指向)相同的内容,所以它们总是匹配的
根据变量的名称,我猜您可能想从文件中读取一行,并将其与zutat1
的内容进行比较
您应该看看文档,尤其是方法。这应该能帮你弄明白
您还应该查看文档,检查是否与您真正想要使用的匹配 您设置了
String zeile = zutat1;
在紧跟着你的队伍中检查他们是否匹配
if (zeile.matches(zutat1)) {
在这种情况下,它们将始终匹配,因为您在前一行中将它们设置为相等
您可能想要的是:
zutat1 = "Mango"; // Set a value to be compared
String zeile = in.readLine(); // Read a line from the file
if (zeile.matches(zutat1)) { // Compare the read line with the value
与处于试块无关。是的,你是对的,匹配不是我需要的,而是包含的。现在它起作用了。