java如何向字符串中添加另一个?
我的代码有什么问题,我想要它,所以如果你输入的字符串是33*10=它输出正确的答案,但在这种情况下它输出0.0,如果字符串是33+10,它将输出44
while (character != '=')
{
for (int i = 0; i < calc.length(); i++)
{
character = calc.charAt(i);
try
{
final String characterString = Character.toString(character);
characterString = characterString +characterString
setOperand(Double.parseDouble(characterString));
if (flag == 0)
{
operand1 = (Double.parseDouble(characterString));
result = operand1;
flag = 1;
}
getResult();
}
}
catch (Exception e)
{
try
{
operator = character;
}
catch (Exception e2)
{
System.out.println("Enter a number");
}
}
}
}
# 1 楼答案
字符串类型的对象在创建后无法更改。您要么用旧字符串构建一个新字符串,要么使用StringBuilder(更好)。如果需要同步字符串制作,可以使用StringBuffer而不是StringBuilder。两者本质上是相同的,但后者是线程安全的,而前者不是
我真的不明白你想在这里做什么。是的,你可以使用第二行,但有一个问题:
将创建一个新的对象,因此CharacterString将被分配一个新对象。这是通过第一行中的
final
语句实现的此外
characterString +characterString
将创建一个由重复2次的字符串组成的字符串。就像将在控制台中打印
123456123456
。不知道这是否是你的意图您正在初始化循环中的字符串。因此,每次通过都会创建一个新的,丢弃旧的。如有可能,应避免不必要的物体创建和破坏
# 2 楼答案
不能向字符串中添加字符,请使用StringBuffer:
# 3 楼答案
不要让
character = calc.charAt(i);
只抓取一个字符,试试这样做会将所有连续数字附加到字符串生成器,然后将其转换为要分析的字符串
这可能有效,但您的代码有很多地方可能会失败。例如,您使用异常作为决策方法,这通常是不受欢迎的
# 4 楼答案