将逗号插入整数

时间:2010-11-18 22:17:21

标签: android integer format substring

在Android中有一种简单的方法可以将逗号插入数字值吗? 即如果我有一个包含12345的EditText,我该如何将其显示为12,345?

我想我可以使用子字符串并将其切换为x个3个数字块,然后将每个3个数字块之间的“,”连接起来。 如果数字的长度是恒定的,这将是非常容易的,但是由于数字可以从一位数到20位,这使得它更复杂。

在我开始制作子字符串解决方案之前,如果有一种简单而干净的方法可以实现这一点,那就好奇了。

干杯

2 个答案:

答案 0 :(得分:16)

如果是Java -

使用类似的东西:

    double amount = 2324343192.015;
    NumberFormat formatter = new DecimalFormat("###,###,###.##");
    System.out.println("The Decimal Value is: "+formatter.format(amount));

结果:十进制值为:2,324,343,192.02

答案 1 :(得分:0)

您可以先在下面的类中声明:

public class MyNumberWatcher implements TextWatcher {

private EditText editText;

public MyNumberWatcher(EditText editText) {
    this.editText = editText;
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void afterTextChanged(Editable s) {
    editText.removeTextChangedListener(this);

    String sEditText = editText.getText().toString();

    sEditText = sEditText.replace(",", "");
    if (sEditText.length() > 0) {
        DecimalFormat sdd = new DecimalFormat("#,###");
        Double doubleNumber = Double.parseDouble(sEditText);

        String format = sdd.format(doubleNumber);
        editText.setText(format);
        editText.setSelection(format.length());

    }
    editText.addTextChangedListener(this);
}

}

然后在xml文件中

<EditText
                android:id="@+id/txt"
                style="@style/edit_text_style"
                android:inputType="number"/>

和主要活动中:

TextView txt = findViewById(R.id.txt);
txt.addTextChangedListener(new MyNumberWatcher(txt));