【问题标题】:Spacing between every 3 characters每 3 个字符之间的间距
【发布时间】:2020-02-23 02:20:33
【问题描述】:

我不知道如何制作它,以便我可以间隔字符,例如 1 000、10 000、100 000、10 000 000。只要有三个以上的字符,我就需要它来间隔其余的最后三位数字。如果有超过 6 个字符,我需要它在最后三个数字中间和之前间隔两次。我需要它作为edittext的掩码,以便在输入时对其进行格式化。我正在考虑使用 textwatcher,但正在考虑是否有更好的方法来使用正则表达式。作为奖励,如果有办法在“$”(美元符号)前面加上前缀,那也会很有帮助,但不是必需的。

非常感谢任何帮助:)

编辑:得到它的工作:

StringBuilder ss;
        ss = new StringBuilder(text);

        for(int i = ss.length(); i > 0; i -= 3){
            ss.insert(i, " ");
        }

        return ss.toString();

【问题讨论】:

    标签: android android-edittext mask textwatcher


    【解决方案1】:

    您需要使用TextWatcher 来实现您的目的。这是实现空格的简单方法:

    StringBuilder s;
    s = new StringBuilder(yourTxtView.getText().toString());
    
    for(int i = 3; i < s.length(); i += 4){
        s.insert(i, " ");
    }
    
    yourTxtView.setText(s.toString());
    

    【讨论】:

    • 没有按预期工作,但经过一些调整后,我已经开始工作了。感谢您至少让我走上正轨:)