Пробелы в java

какие виды пробелов в Java? Мне нужно проверить мой код, если текст содержит пробелы.

мой код:

if (text.contains(" ") || text.contains("t") || text.contains("r") 
       || text.contains("n"))   
{  
   //code goes here
}   

Я уже знаю, о n ,t ,r и space.

8 ответов


boolean containsWhitespace = false;
for (int i = 0; i < text.length() && !containsWhitespace; i++) {
    if (Character.isWhitespace(text.charAt(i)) {
        containsWhitespace = true;
    }
}
return containsWhitespace;

или, используя Guava,

boolean containsWhitespace = CharMatcher.WHITESPACE.matchesAnyOf(text);

для подхода нерегулярного выражения вы можете проверить Character.isWhitespace для каждого персонажа.

boolean containsWhitespace(String s) {
    for (int i = 0; i < s.length(); ++i) {
        if (Character.isWhitespace(s.charAt(i)) {
            return true;
        }
    }
    return false;
}

какие пробелы в Java?

в документации указывается, что Java считает пробелами:

public static boolean isWhitespace(char ch)

определяет, является ли указанный символ является пробелом в соответствии с Java. Символ-это символ пробела Java, если и только если он удовлетворяет один из следующих критериев:

  • это символ пространства Юникода (SPACE_SEPARATOR, LINE_SEPARATOR или PARAGRAPH_SEPARATOR), но не является также неразрывным пространством ('\u00A0', 'u2007\', '\u202F').
  • это '\u0009', ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ.
  • это '\u000A', ЛИНИЯ ПОДАЧИ.
  • это '\u000B', ВЕРТИКАЛЬНАЯ ТАБУЛЯЦИЯ.
  • это '\u000C', ФОРМА ПОДАЧИ.
  • это '\u000D', перевозка ВОЗВРАЩАТЬСЯ.
  • это '\u001C', РАЗДЕЛИТЕЛЬ ФАЙЛОВ.
  • это '\u001D', РАЗДЕЛИТЕЛЬ ГРУПП.
  • это '\u001E', РАЗДЕЛИТЕЛЬ ЗАПИСИ.
  • это '\u001F', СЕПАРАТОР БЛОКА.

использовать символ.isWhitespace() вместо того, чтобы создавать свои собственные.

в Java как превратить строку в символ или символ в строку?


Если вы можете использовать Apache.палата общин.lang в вашем проекте самым простым способом было бы просто использовать метод, предоставленный там:

public static boolean containsWhitespace(CharSequence seq)

проверьте, содержит ли данный CharSequence какие-либо пробелы.

параметры:

seq - the CharSequence to check (may be null) 

возвращает:

true if the CharSequence is not empty and contains at least 1 whitespace character

он обрабатывает пустые и нулевые параметры и обеспечивает функциональность в одном месте.


от солнца docs:

\s символ пробела: [ \t\n\x0B\f\r]

самый простой способ-это использовать его с регулярным выражением.


Если вы хотите рассмотреть способ сделать это на основе регулярного выражения

if(text.split("\s").length > 1){
    //text contains whitespace
}

boolean whitespaceSearchRegExp(String input) {

    return java.util.regex.Pattern.compile("\s").matcher(input).find();

} 

почему бы вам не проверить, если текст.trim() имеет разную длину? :

if(text.length() == text.trim().length() || otherConditions){
    //your code
}