如何验证带有大量空白的文本?

问题描述 投票:-1回答:3

描述:

我正在创建一个应用,您可以更改个人资料的名称。问题是用户可以用很多空格写他们的名字,我不知道如何避免这个问题。

示例:

(我将用下划线“ _”代表空白)>

编辑您的姓名:

T_____omas_Men________n____i_ti //// (31个字符)] >>

如果有人将其写在编辑文本上,将保留空白,然后我们将在用户个人资料中看到该大名称。

我想要什么?

我需要一个代码,该代码能够检查何时编辑文本中的一行中有多个空格(> 1),以便删除它们。该代码应该能够检测到“ name”

“ last name”之后必须有一个空格。

说明:我正在创建一个应用,您可以更改个人资料的名称。问题是用户可以用很多空格写他们的名字,我不知道如何避免这个问题。 ...

android android-edittext
3个回答
0
投票

如果您写字符,请在下面的代码段中尝试,然后在此之后只能写一个空格。

final EditText etMyEdittext = (EditText)findViewById(R.id.editText1_in_row);
        InputFilter filter = new InputFilter() { 
            boolean canEnterSpace = false;
            public CharSequence filter(CharSequence source, int start, int end,
                    Spanned dest, int dstart, int dend) {
                if(etMyEdittext .getText().toString().equals(""))
                {
                    canEnterSpace = false;
                }
                StringBuilder builder = new StringBuilder();

                for (int i = start; i < end; i++) { 
                    char currentChar = source.charAt(i);

                    if (Character.isLetterOrDigit(currentChar) || currentChar == '_') {
                        builder.append(currentChar);
                        canEnterSpace = true;
                    }

                    if(Character.isWhitespace(currentChar) && canEnterSpace) {
                        builder.append(currentChar);
                    }
                }
                return builder.toString();          
            }
        };
        etMyEdittext.setFilters(new InputFilter[]{filter});

0
投票

您可以通过棘手的方式使用TextWatcher来限制EditText。


0
投票

我提供了另一种解决方案,专注于使用裸字符串而不是EditText。请记住,此答案与此处的其他答案结合使用。

© www.soinside.com 2019 - 2024. All rights reserved.