如何检查editText中是否有空格并以编程方式填充它们

How to check if there are spaces inside editText and fill them programmatically

我想检查字母之间是否有space,如果有则添加space,如果有太多则删除。有没有简单的方法可以做到这一点?

我目前正在检查邮政编码,但是如果没有 spaces,我想添加 spaces,例如M11SS 使其成为 M1 1SS 并删除开始 spaces 和结束 spaces

if (a.isEmpty(txtJobPostcode)) {
    Toast.makeText(getContext(), "Please enter a postcode", Toast.LENGTH_LONG).show();
    return;
}
if(txtJobPostcode.getText().toString().matches("^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$")){
    Log.d("NOTICE", String.valueOf(txtJobPostcode));
} 
else {
    Toast.makeText(getContext(), "Please enter a valid postcode", Toast.LENGTH_LONG).show();
    return;
}

尝试考虑:TextWatcher class in Android sdk.

您可以通过 link:

找到文档

https://developer.android.com/reference/android/text/TextWatcher

您也可以尝试一些库(开箱即用的解决方案)以节省您的时间:

https://github.com/egslava/edittext-mask

https://github.com/reinaldoarrosi/MaskedEditText

String myString = txtJobPostcode.getText().toString().trim() - 将删除开头和结尾 spaces。 然后,如果您确定 space 需要在哪里,您可以检查该特定位置的字母,如果它不等于“”,然后使用 StringBuilder 替换字母,即

String letter = myString.substring(1,2)
if (!letter.equals(" ")) {
    StringBuilder sb = new StringBuilder(myString);
    sb.insert(1, " ")
    myString = sb.toString()
}