2010-11-01 10 views
47

Wie kann ich überprüfen, ob ein String ein Leerzeichen, ein Leerzeichen oder "" enthält. Wenn möglich, geben Sie bitte ein Java-Beispiel an.Wie kann ich Leerzeichen in einem String finden?

Zum Beispiel: String = "test word";

+3

Was ist "leerer Speicherplatz"? Ist es ""? –

+9

@Dominic - es ist was du bekommst, wenn du einen "vollen Raum" leer machst. Duh !!! –

Antwort

76

Um zu überprüfen, ob eine Zeichenfolge Whitespace enthält, verwenden Sie eine Matcher und rufen Sie es ist Find-Methode.

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

Wenn Sie überprüfen wollen, ob es besteht nur aus Leerzeichen dann können Sie verwenden String.matches:

boolean isWhitespace = s.matches("^\\s*$"); 
+1

Enthält leere Zeichenfolge Whitespace? Bool sollte Boolean sein, denke ich. – Joni

+0

\\ s ist, was ich gesucht habe, danke – Vivekanand

2

Sie Regex verwenden könnten, um zu bestimmen, ob es ein Leerzeichen ist. \s.

Weitere Informationen über Regex here.

+0

Sie könnten diese Antwort verbessern, indem Sie den Java-Code angeben, der diese Regex verwendet. –

1
public static void main(String[] args) { 
    System.out.println("test word".contains(" ")); 
} 
+2

Diese Antwort überprüft nicht für alle Leerzeichen. –

15

Dies wird sagen, wenn Sie es irgendwelche Whitespaces:

Entweder durch Schleifen:

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

oder

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

Und StringUtils.isBlank(s) wird Ihnen sagen, wenn es nur whitepsaces.

+2

Schöne umfassende Antwort (+1), aber die Schleife Variante kann getan werden, ohne ein neues Char-Array erstellen (siehe meine Antwort) –

+0

@seanizer wahr. +1 für dich. dafür :) – Bozho

21

prüfen, ob ein String enthält mindestens ein Leerraumzeichen:

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; 
} 

Referenz:


Mit der Guava Bibliothek, es ist viel einfacher:

return CharMatcher.WHITESPACE.matchesAnyOf(testCode); 

CharMatcher.WHITESPACE ist auch viel gründlicher, wenn es um die Unicode-Unterstützung.

+2

Ich denke, dieser Code ist nicht vollständig Unicode bewusst, weil: 'Diese Methode kann nicht mit zusätzlichen Zeichen umgehen. Um alle Unicode-Zeichen, einschließlich Zusatzzeichen, zu unterstützen, verwenden Sie die Methode isWhitespace (int). –

+0

True, aber ich frage mich, wie viele neue Leerzeichen in Unicode-Bereichen jenseits '0xffff' definiert sind ... –

+0

Ich habe absolut keine Ahnung, Ich habe es nur der Vollständigkeit halber erwähnt. –

1

Verwenden Sie diesen Code, war bessere Lösung für meine, wenn Sie vier Leerzeichen haben und ist ein Export für eine TXT-Datei.

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; 
} 
-1
package com.test; 

public class Test { 

    public static void main(String[] args) { 

     String str = "TestCode "; 
     if (str.indexOf(" ") > -1) { 
      System.out.println("Yes"); 
     } else { 
      System.out.println("Noo"); 
     } 
    } 
} 
+2

Bitte erklären Sie, warum Sie das getan haben und warum dies die Lösung ist. Kommentiere deinen Code! – ReneS

+0

Es gibt viele Leerzeichen, die dieser Code nicht findet. –

0
import java.util.Scanner; 
public class camelCase { 

public static void main(String[] args) 
{ 
    Scanner user_input=new Scanner(System.in); 
    String Line1; 
    Line1 = user_input.nextLine(); 
    int j=1; 
    //Now Read each word from the Line and convert it to Camel Case 

    String result = "", result1 = ""; 
    for (int i = 0; i < Line1.length(); i++) { 
     String next = Line1.substring(i, i + 1); 
     System.out.println(next + " i Value:" + i + " j Value:" + j); 
     if (i == 0 | j == 1) 
     { 
      result += next.toUpperCase(); 
     } else { 
      result += next.toLowerCase(); 
     } 

     if (Character.isWhitespace(Line1.charAt(i)) == true) 
     { 
      j=1; 
     } 
     else 
     { 
      j=0; 
     } 
    } 
    System.out.println(result); 
0

Verwendung org.apache.commons.lang.StringUtils.

  1. für Whitespaces

boolean withWhiteSpace = StringUtils.contains suchen ("mein Name", "„);

  1. Um alle Leerzeichen in einem String

StringUtils.deleteWhitespace (null) zu löschen = null StringUtils.deleteWhitespace ("") = "" StringUtils.deleteWhitespace ("ABC") = "abc" StringUtils.deleteWhitespace ("ab c") = "abc"

0
String str = "Test Word"; 
      if(str.indexOf(' ') != -1){ 
       return true; 
      } else{ 
       return false; 
      } 
+0

Um klar zu sein, fügen Sie ein Beispiel in Ihrem Code wie ein Kommentar hinzu. – pirs

0

ich Zweck Ihnen eine sehr einfache Methode, die String.contains verwenden:

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

Ein kleines Anwendungsbeispiel:

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

Ausgang:

true 
false 
0

Sie können diese im Grunde tun

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

Sie müssen eine boolesche Methode schreiben. Whitespace char ist 32.