gpt4 book ai didi

java - 如何使 'double' 与 'integer' 对应

转载 作者:行者123 更新时间:2023-12-01 23:37:06 30 4
gpt4 key购买 nike

我最近在我的应用程序中添加了一种方法,可以自动格式化 TextView ,从“50000”到“50,000”,效果绝对完美。现在我遇到的问题是,在我的应用程序中,有多个按钮功能可以从该 TextView 中添加或删除某些金额,所以我们只需说 textview =“5,000”,当您单击该按钮时,它会删除“1000”问题是它强制关闭应用程序,因为 TextView 在技术上不再是整数,而是字符串。这是代码和错误。

    //formats the textview to show commas
double number = Double.parseDouble(textView1.getText().toString());
DecimalFormat formatter = new DecimalFormat("###,###,###");
textView1.setText(formatter.format(number));


Button btnremove1000 = (Button) findViewById(R.id.btnremove1000);
btnremove1000.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView textView1 = (TextView) findViewById(R.id.textView1);

int amount = Integer.parseInteger(textView1.getText()
.toString()) - 1000;
textView1.setText(String.valueOf(amount));

Toast msg = Toast.makeText(MainScreen.this,
"1,000 removed!", Toast.LENGTH_SHORT);
msg.show();
}
});


java.lang.NumberFormatException: Invalid int: "5,000"

现在我该怎么做才能仍然显示逗号并添加和删除值?

我唯一能想到的是以某种方式删除逗号,添加/删除一个值,然后重新格式化以再次显示逗号?

最佳答案

替换这个:

int amount = Integer.parseInteger(textView1.getText().toString()) - 1000;

与:

String fromTV = textView1.getText().toString();

String commaRemoved = fromTV.replace(",", "");

int amount = Integer.parseInteger(commaRemoved) - 1000;

一行:

int amount = Integer.parseInteger(
textView1.getText().toString().replace(",", "")) - 1000;

编辑:按照 Eng.Fouad 的建议,使用 replace() 代替 replaceAll()

关于java - 如何使 'double' 与 'integer' 对应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523108/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com