Java 如何向字符串中添加另一个?
我的代码有什么问题,我想要它,如果你输入的字符串是33*10=它输出正确的答案,但在这种情况下它输出0.0,如果字符串是33+10,它将输出44Java 如何向字符串中添加另一个?,java,Java,我的代码有什么问题,我想要它,如果你输入的字符串是33*10=它输出正确的答案,但在这种情况下它输出0.0,如果字符串是33+10,它将输出44 while (character != '=') { for (int i = 0; i < calc.length(); i++) { character = calc.charAt(i); try {
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");
}
}
}
}
while(字符!='=')
{
对于(int i=0;i
您不能将字符添加到字符串中,请使用StringBuffer:
StringBuffer buffer = new StringBuffer();
buffer.add("3+3=");
buffer.add("6");
System.out.println(buffer.toString());
而不是
character=calc.charAt(i)代码>仅抓取1个字符,请尝试
StringBuilder sb = new StringBuilder();
while(calc.charAt(i).isDigit()){
sb.append(calc.charAt(i));
i++;
}
...
final String characterString = sb.toString();
这样做会将所有连续数字附加到字符串生成器,然后将其转换为要分析的字符串
这可能可行,但您的代码有很多地方可能会失败。例如,您使用异常作为决策方法,这通常是不受欢迎的。字符串类型的对象在创建后无法更改。您要么用旧字符串构建一个新字符串,要么使用一个StringBuilder(更好)。如果您需要同步字符串制作,您可以使用StringBuffer而不是StringBuilder。两者本质相同,但后者是线程安全的,而前者不是
final String characterString = Character.toString(character);
characterString = characterString +characterString
我真的不明白你想在这里做什么。是的,您可以使用第二行,但有一个问题:
characterString +characterString
将创建一个新对象,因此CharacterString将被分配一个新对象。您可以通过第一行中的final
语句来防止这种情况
此外,characterString+characterString
将创建一个由重复2次的字符串组成的字符串。像
characterString = "123456";
characterString = characterString + characterString;
System.out.print(characterString);
将在控制台中打印123456123456
。不知道这是否是你的意图
您正在初始化循环中的字符串。因此,每次传递都会创建一个新传递,丢弃旧传递。如果可能,应避免不必要的对象创建和破坏。接受您的其他一些问题,人们会更愿意帮助u^^@Neal,绝对不是这样。)
characterString = "123456";
characterString = characterString + characterString;
System.out.print(characterString);