You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取JTextField文本并拆分至变量计算?解决结果恒为0.0问题

问题分析与解决

你的代码里获取第一个数字(zahl1)的逻辑完全错误,这是导致结果始终为0.0的核心原因:

  • 当前代码用calc.substring(calc.lastIndexOf("-") + 2)来取zahl1,意味着你从减号的后两位开始截取字符串,大概率会得到空字符串或无效内容,解析成double后结果为0,减法自然输出0.0。
  • 正确的做法是截取从字符串开头到减号位置的内容作为第一个数字。

修正后的减法代码

else if (action.equals("-")) {
    String calc = TextField.getText();
    // 获取减号的位置
    int minusIndex = calc.lastIndexOf("-");
    // 截取第一个数字:从开头到减号位置
    String looknumberbefore = calc.substring(0, minusIndex);
    double zahl1 = Double.parseDouble(looknumberbefore);
    // 截取第二个数字:从减号后一位到结尾
    String lookfornumber = calc.substring(minusIndex + 1);
    double zahl2 = Double.parseDouble(lookfornumber);
    
    erg = zahl1 - zahl2;
    answer = String.format("%.1f - %.1f = %.2f", zahl1, zahl2, erg);
    TextField.setText(answer);
}

额外建议

  • 增加输入合法性校验:先判断minusIndex是否大于0(确保存在减号且前面有有效数字),避免parseDouble抛出异常。
  • 如果需要支持连续计算(比如"10-5-3"),还要进一步调整拆分逻辑,当前代码优先保证两个数字的减法正常运行。

内容的提问来源于stack exchange,提问作者AlexanderR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:45:46