Как я проверяю, что Строка Java не является всеми пробелами?

Я хочу проверить, что Строка Java или символьный массив только составлены из пробелов, с помощью Java?

Это - очень похожий вопрос кроме, он - JavaScript:
Как я могу проверить, содержит ли строка символы и пробел, не просто пробел?

Править: Я удалил бит об алфавитно-цифровых символах, таким образом, он имеет больше смысла.

125
задан Naman 15 July 2018 в 07:29
поделиться

6 ответов

Самое короткое решение, которое я могу придумать:

if (string.trim().length() > 0) ...

Это только проверка на (не)пробелы. Если вы хотите проверить наличие определенных классов символов, вам нужно использовать могучий match() с regexp, таким как:

if (string.matches(".*\\w.*")) ...

... который проверяет наличие хотя бы одного (ASCII) буквенно-цифрового символа.

214
ответ дан 24 November 2019 в 00:56
поделиться

Метод обрезки должен отлично вам подойти.

http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/lang/String.html#trim ()

Возвращает копию строки, с участием начальные и конечные пробелы опущено. Если этот объект String представляет собой пустой символ последовательность, или первая и последняя символы символьной последовательности представлен этим объектом String как имеют коды больше, чем '\ u0020' ( пробел), затем ссылка на этот объект String возвращается.

В противном случае, если нет символа с кодом больше '\ u0020' в строка, затем новый объект String представляющая пустую строку создал и вернулся.

В противном случае пусть k будет индексом первый символ в строке, чей код больше, чем '\ u0020', и пусть m - индекс последнего символа в строке, код которой больше чем '\ u0020'. Новый объект String создано, представляя подстроку эта строка, которая начинается с символ с индексом k и заканчивается символ с индексом m, то есть результат this.substring (k, m + 1).

Этот метод может использоваться для обрезки пробелы от начала и до конца строки; на самом деле, он урезает все Также управляющие символы ASCII.

Возвращает: копию этой строки с начальные и конечные пробелы удалена, или эта строка, если в ней нет начальный или конечный пробел. начальный или конечный пробел.

Вы можете обрезать, а затем сравнить с пустой строкой или, возможно, проверить длину на 0.

1
ответ дан 24 November 2019 в 00:56
поделиться

Alternative:

boolean isWhiteSpaces( String s ) {
    return s != null && s.matches("\\s+");
 }
0
ответ дан 24 November 2019 в 00:56
поделиться

В этом ответе больше внимания уделяется примечанию «, т.е. имеет хотя бы один буквенно-цифровой символ ». Кроме того, это не добавляет слишком много к другому (более раннему) решению, за исключением того, что это не повредит вам с NPE в случае, если String имеет значение null .

Нам нужно false , если (1) s равно null или (2) s пусто, или (3) s содержит только белые символы.

public static boolean containsNonWhitespaceChar(String s) {
  return !((s == null) || "".equals(s.trim()));
}
4
ответ дан 24 November 2019 в 00:56
поделиться

Я бы использовал библиотеку Apache Commons Lang. У него есть класс StringUtils, который полезен для всех видов операций над String. Чтобы проверить, состоит ли строка не только из пробелов, вы можете использовать следующее:

StringUtils.isBlank(<your string>)

Вот ссылка: StringUtils.isBlank

55
ответ дан 24 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: