Android Studio中无法将字符串转换为整数实现求和功能的问题咨询
问题分析与解决方案
嘿,问题很明确啦——你现在只是把去掉$后的字符串直接拼接在一起,而没有把它们转换成数值类型进行求和计算。这就是为什么结果只是字符串连起来,而不是真正的数字相加。
你遗漏的关键步骤:
- 把处理后的纯数字字符串转换成整数(或浮点数,根据你的金额是否有小数)
- 对转换后的数值执行加法运算
- 把最终的求和结果转回字符串(还可以重新加上
$符号保持格式一致)
修改后的代码示例
假设你的金额都是整数,用Integer.parseInt()转换:
public void addTotal() { // 取出文本并去除$符号 String sub1 = subtotal1.getText().toString().replace("$", ""); String sub2 = subtotal2.getText().toString().replace("$", ""); String sub3 = subtotal3.getText().toString().replace("$", ""); // 转换为整数并求和 int total = Integer.parseInt(sub1) + Integer.parseInt(sub2) + Integer.parseInt(sub3); // 转换回带$符号的字符串并设置到TextView totalAmt.setText("$" + total); }
如果金额有小数(比如带角分),就用Double.parseDouble():
public void addTotal() { String sub1 = subtotal1.getText().toString().replace("$", ""); String sub2 = subtotal2.getText().toString().replace("$", ""); String sub3 = subtotal3.getText().toString().replace("$", ""); double total = Double.parseDouble(sub1) + Double.parseDouble(sub2) + Double.parseDouble(sub3); // 用String.format保留两位小数,让格式更规范 totalAmt.setText(String.format("$%.2f", total)); }
额外建议:加上异常处理
如果TextView里的内容不是有效数字(比如空字符串、非数字字符),直接转换会抛出NumberFormatException导致崩溃。可以加个try-catch块处理这种情况:
public void addTotal() { try { String sub1 = subtotal1.getText().toString().replace("$", "").trim(); String sub2 = subtotal2.getText().toString().replace("$", "").trim(); String sub3 = subtotal3.getText().toString().replace("$", "").trim(); double total = Double.parseDouble(sub1) + Double.parseDouble(sub2) + Double.parseDouble(sub3); totalAmt.setText(String.format("$%.2f", total)); } catch (NumberFormatException e) { // 处理无效输入的情况,比如提示用户输入正确金额 totalAmt.setText("无效金额"); e.printStackTrace(); } }
内容的提问来源于stack exchange,提问作者Chan Jun Mun
相关产品推荐
相关产品推荐

