Пробелы в 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() вместо того, чтобы создавать свои собственные.
Если вы можете использовать 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
}