这个问题在这里已经有答案了:
如何比较java中的字符串(23个答案)
上个月关门了。
import java.util.Scanner;
public class SimCompanies {
public static void main(String[] args) {
Scanner scanner = new Scanner (System.in);
boolean x=true;
String complete = new String(":fire: Buying DAILY :fire:\n");
while (x==true) {
String input = scanner.next();
if (input == "0") {
System.out.println(complete);
x=false;
}
else {
complete += extend(input);
}
}
}
public static String extend(String a) {
return new String(
":" + a + ": " + ":" + a + ": " + ":" + a + ": " + ":" + a + ": \n" );
}
我想写一个有输入的程序。对于新行中的每一个输入,它应接受输入并执行“扩展”功能。我试了很多次,发现它可以很好地与函数配合使用(所以无论我有多少个输入,它都能正确地处理输入)。但是当我写“0”时,我想停止程序。但是程序没有看到我在写“0”。它总是进入else语句,但从不进入if语句。最后把所有的东西都打印出来是很重要的。那我做错什么了?
我希望这个在最后(输入:卫星,喷气机)
:fire: Buying DAILY :fire:
:Satellite: :Satellite: :Satellite: :Satellite:
:Jet: :Jet: :Jet: :Jet:
2条答案
按热度按时间34gzjxbg1#
字符串不是基元,因此不能使用相等运算符(=)与另一个字符串进行比较。
要比较两个字符串,只需使用.equals()方法,该方法已作为java中字符串api的一部分提供。
即
klsxnrf12#
这里的问题是,您试图比较的不是字符串内容,而是它的示例引用。您需要的是比较字符串值。
修改
if
中的语句while
以下循环是解决问题的一种可能的解决方案:或使用:
输入/输出示例如下: