我使用minLength=13
编辑了文字。如果用户输入 13个字符以下,我想在输入前面添加零,以使此长度为13. Ex:用户输入123 -> 0000000000123
。
任何方法?
答案 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)