Как узнать, содержит ли строка variabel только пробел в java?

1

У меня есть переменная, которая содержит строку, и я хочу заменить строку "null", если переменная содержит только пробел или несколько пробелов. Как мне это сделать?

Показать ещё 1 комментарий
Теги:
string
space

5 ответов

5

Попробуйте следующее:

 if(str.trim().isEmpty()){
         str = null;
 } 
  • 0
    Он сказал «космос», а не «пробел». trim() работает с пробелами. Тонкая разница, которая может быть важна для него.
  • 0
    @Andy Браун: Я не думаю , что он хочет \t только строку.
Показать ещё 4 комментария
1

Это можно сделать так:

    String spaces = "   -- - -";
    if (spaces.matches("[ -]*")) {
        System.out.println("Only spaces and/or - or empty");
    }
    else {
        System.out.println("Not only spaces");
    }
  • 0
    это работает, если есть только один пробел или несколько пробелов?
  • 0
    он работает для нескольких пробелов, но не для пробелов (например, табуляции, новой строки)
Показать ещё 3 комментария
1

Предположим, что ваша переменная - String var

Затем,

if(var.replace(" ", "").equals("")) {
    var = null;
}
0

Как насчет этого?

if(yourstring.replace(" ","").length()==0) {
    yourstring = null;
}

Не требует регулярных выражений, поэтому он должен быть немного более эффективным, чем решения.

  • 0
    тогда когда моя строковая переменная содержит не только пробел?
  • 0
    Привет! Это почти то, что я сказал! : D
0

Прежде всего, вы можете реализовать его самостоятельно, например, используя регулярное выражение, которое очень просто.

Определение Java Regex определяет "/s" как шаблон для всех пробельных символов. Таким образом, строка, соответствующая "/s+", пуста или содержит только пробелы.

Вот пример:

public boolean isEmpty(String value) {
  return value.matches("/s*");
}

Но нормально, это не очень хорошая идея сделать это самим. Это настолько распространенная модель, что она уже реализована во многих библиотеках. Моя лучшая практика почти во всех приложениях Java, которые я написал, заключается в использовании библиотеки apache commons lang. Который включает класс StringUtils. Все методы этого класса являются nullsave и следите за всеми возможными сценариями относительно того, что, например, является пустой строкой.

Таким образом, с apache commons это:

StringUtils.isBlank(value);

Посмотрите здесь: http://commons.apache.org/proper/commons-lang/javadocs/api-3.3.2/index.html

  • 0
    Или .matches("\\s*");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню