添加零以输入编辑文本以获取minLength

时间:2016-01-12 23:43:20

标签: android

我使用minLength=13编辑了文字。如果用户输入 13个字符以下,我想在输入前面添加零,以使此长度为13. Ex:用户输入123 -> 0000000000123

任何方法?

3 个答案:

答案 0 :(得分:1)

如果输入为整数,则可以使用String.format来完成:

int input = 123;
int pad_width = 13;
String padded = String.format("%0"+pad_width+"d", input);
// padded is now "0000000000123"

在其他问题上与此相关的答案:

答案 1 :(得分:0)

是的,这很容易。请记住,此代码未经过测试:

// Declaration 
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Declare edittext here
    mEditText = // init code...

}

// Detect when user has pressed done
public void setKeyListener() {
     mEditText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
                if (keyCode == KeyEvent.KEYCODE_ENTER) {
                    String s = mEditText.getText().toString();
                    s = appendZerosIfNecessary();
                    return true;
                }
            }
            return false;
        }
    });

// Append if necessary
private String appendZerosIfNecessary(String s) {
    int length = s.length;
    if (s.length < 13) {
        StringBuilder sb = new StringBuilder(s);
        for (int i = length; i < 13; i++) {
            sb.append('0');
        }
        return sb.toString();
    }
    return s;
}

请注意,此代码未经过测试,但您明白了。

编辑:只需重新阅读您希望在开头添加0的问题。

在这种情况下,我会将另一个答案合并到此答案并将appendZerosIfNecessary()更改为以下内容:

private String appendZerosIfNecessary(String s) {
   StringBuilder finalString = new StringBuilder();
   for (int i = 0; i < (13 - input.length()); i++){
       finalString.append('0')
   }
   finalString.append(input)
}

答案 2 :(得分:0)

最简单的方法是检查用户输入的长度。

String input = 123;
StringBuilder finalString= new StringBuilder();

for (int i=0; i<13-input.length(); i++){
 finalString.append("0")
}
finalString.append(input)