我想管理一个if条件中的命令只显示来自方法“zutat1”的字符串输入在文件“Fleisch.txt”中。无论zutat1中的输入是什么,它都会始终显示。
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;
}
答案 0 :(得分:0)
问题是您基本上将zeile
设置为与zutat1
相同的字符串!
由于它们都包含(或者说指向)相同的内容,因此它们将始终匹配。
从您的变量名称我猜您可能想要从您的文件中读取一行并将其与zutat1
的内容进行比较。
您应该查看BufferedReader文档,尤其是readLine方法。这应该可以帮助你搞清楚。
您还应该查看string文档,并检查matches
是否是您真正想要使用的内容。
答案 1 :(得分:0)
你设置
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