Java 在JOptionPane中使用包含变量的字符串

Java 在JOptionPane中使用包含变量的字符串,java,Java,我正在尝试使用“if”语句构建一个字符串,然后使用构建的字符串显示在JOptionPane中 //If the value is zero, don't show the line item if (intLays > 0) strBuiltOrder = "intSnickers + \"Snickers\" + \"\\n\""; 最后,每个值大于零的变量将有一个行项目。然而,问题是,当我在JOptionPane中使用它时,它会输出文本 intSnickers + \"Snick

我正在尝试使用“if”语句构建一个字符串,然后使用构建的字符串显示在JOptionPane中

//If the value is zero, don't show the line item
 if (intLays > 0)
 strBuiltOrder = "intSnickers + \"Snickers\" + \"\\n\"";
最后,每个值大于零的变量将有一个行项目。然而,问题是,当我在JOptionPane中使用它时,它会输出文本

intSnickers + \"Snickers\" + \"\\n\"

我是否可以构建一个字符串插入到JOptionPane中,或者如果变量的值为零,是否有另一种方法从JOptionPane中保留变量?

根据我自己的假设,也许您正在寻找:

//If the value is zero, don't show the line item
 if (intLays > 0)
 strBuiltOrder = intSnickers + "\"Snickers\"" + "\"\\n\"";

我希望这有助于,或者至少为您指出正确的方向,当我了解更多关于预期输出的信息时,我可以尝试进一步帮助您

你为什么不使用引号和反斜杠?以下内容可能符合您的预期:

if (intLays > 0) {
    strBuiltOrder = intSnickers + "Snickers\n";
}

如果要生成更复杂的字符串,可以查看StringBuilder或StringBuffer对象。

请尝试使用StringBuilder,而不是使用字符串,这样就不会出现该语句的语法问题。因此,您的代码可能类似于:

StringBuilder sb = new StringBuilder(...);
...

if (intLays > 0)
    sb.append(intSnickers).append("Snickers\n");
字符串是不可变的,因此最好使用StringBuilder或StringBuffer之类的工具。

解决方案是:

 if (intSnickers > 0)
                         BuiltOrder.append( intSnickers + "Snickers" + "\n");

这意味着连接一个字符串并将其插入一个JOptionPane。我仍然有点困惑,为什么它是这样工作的,而不是我的工作方式,但是,哦,好吧…

你能举个例子说明你的预期输出应该是什么样子吗?