Как найти пробел в строке? - PullRequest
51 голосов
/ 01 ноября 2010

Как проверить, содержит ли строка символ пробела, пробел или символ "". Если возможно, приведите пример Java.

Например: String = "test word";

Ответы [ 14 ]

82 голосов
/ 01 ноября 2010

Для проверки, содержит ли строка пробел , используйте Matcher и вызывайте метод find.

Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher(s);
boolean found = matcher.find();

Если вы хотите проверить, состоит ли он только из пробелов , вы можете использовать String.matches:

boolean isWhitespace = s.matches("^\\s*$");
22 голосов
/ 01 ноября 2010

Проверьте, содержит ли строка хотя бы один символ пробела:

public static boolean containsWhiteSpace(final String testCode){
    if(testCode != null){
        for(int i = 0; i < testCode.length(); i++){
            if(Character.isWhitespace(testCode.charAt(i))){
                return true;
            }
        }
    }
    return false;
}

Справка:


Используя библиотеку Guava , это намного проще:

return CharMatcher.WHITESPACE.matchesAnyOf(testCode);

CharMatcher.WHITESPACE также намного тщательнее, когда дело доходит до поддержки Unicode.

20 голосов
/ 01 ноября 2010

Это скажет, если у вас есть любые пробелы:

Либо по циклу:

for (char c : s.toCharArray()) {
    if (Character.isWhitespace(c)) {
       return true;
    }
}

или

s.matches(".*\\s+.*")

И StringUtils.isBlank(s) сообщит вам, есть ли только пробелы.

8 голосов
/ 16 марта 2015

Используйте Apache Commons StringUtils :

StringUtils.containsWhitespace(str)
3 голосов
/ 17 августа 2012

Используйте этот код, было лучшим решением для меня.

public static boolean containsWhiteSpace(String line){
    boolean space= false; 
    if(line != null){


        for(int i = 0; i < line.length(); i++){

            if(line.charAt(i) == ' '){
            space= true;
            }

        }
    }
    return space;
}
2 голосов
/ 01 ноября 2010
public static void main(String[] args) {
    System.out.println("test word".contains(" "));
}
2 голосов
/ 01 ноября 2010

Вы можете использовать Regex, чтобы определить, есть ли символ пробела. \s.

Подробнее о регулярном выражении здесь .

0 голосов
/ 31 марта 2019

Вы можете использовать функцию chatAt () , чтобы найти пробелы в строке.

 public class Test {
  public static void main(String args[]) {
   String fav="Hi Testing  12 3";
   int counter=0;
   for( int i=0; i<fav.length(); i++ ) {
    if(fav.charAt(i) == ' ' ) {
     counter++;
      }
     }
    System.out.println("Number of spaces "+ counter);
    //This will print Number of spaces 4
   }
  }
0 голосов
/ 08 января 2018

Вы можете сделать это в основном

if(s.charAt(i)==32){
   return true;
}

Вы должны написать логический метод. Символ пробела равен 32.

0 голосов
/ 08 января 2018

Я предлагаю вам очень простой метод, который использует String.contains:

public static boolean containWhitespace(String value) {
    return value.contains(" ");
}

Небольшой пример использования:

public static void main(String[] args) {
    System.out.println(containWhitespace("i love potatoes"));
    System.out.println(containWhitespace("butihatewhitespaces"));
}

Вывод:

true
false
...