Comment puis-je vérifier qu’une chaîne Java n’est pas tous des espaces blancs?

Je veux vérifier que Java Ssortingng ou le tableau de caractères ne se compose pas uniquement d’espaces blancs, en utilisant Java?

C’est une question très similaire sauf que c’est Javascript:
Comment puis-je vérifier si la chaîne contient des caractères et des espaces, pas seulement des espaces?

EDIT : J’ai enlevé le bit sur les caractères alphanumériques, donc c’est plus logique.

La solution la plus courte je peux penser à:

 if (ssortingng.sortingm().length() > 0) ... 

Cela ne vérifie que les espaces (non) blancs. Si vous voulez vérifier les classes de caractères particulières, vous devez utiliser le puissant match() avec une expression rationnelle telle que:

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

… qui vérifie au moins un caractère alphanumérique (ASCII).

J’utiliserais la bibliothèque Apache Commons Lang. Il a une classe appelée SsortingngUtils qui est utile pour toutes sortes d’opérations Ssortingng. Pour vérifier si une chaîne ne contient pas tous les espaces, vous pouvez utiliser les éléments suivants:

 SsortingngUtils.isBlank() 

Voici la référence: SsortingngUtils.isBlank

Légèrement plus court que ce qui a été mentionné par Carl Smosortingcz:

 !ssortingng.sortingm().isEmpty(); 
 if(target.matches("\\S")) // then ssortingng contains at least one non-whitespace character 

Notez l’utilisation de la barre oblique inversée cap-S, qui signifie “caractère non blanc”

Je parie que c’est la solution la plus simple (et peut-être la plus rapide?).

Cette réponse se concentre plus sur le sidenote ” c’est-à-dire qu’il a au moins un caractère alphanumérique “. En plus de cela, il n’ajoute pas trop à l’autre solution (plus ancienne), sauf qu’elle ne vous fait pas de mal avec NPE si la chaîne est null .

Nous voulons que false si (1) s est null ou (2) s est vide ou (3) s contient uniquement des whitechars.

 public static boolean containsNonWhitespaceChar(Ssortingng s) { return !((s == null) || "".equals(s.sortingm())); } 

Si vous ne recherchez que les espaces et que null se soucie de null, vous pouvez utiliser org.apache.commons.lang.SsortingngUtils.isWhitespace (Ssortingng str),

SsortingngUtils.isWhitespace(Ssortingng str);

(Vérifie si la chaîne ne contient que des espaces.)

Si vous voulez aussi vérifier la valeur null (y compris les espaces blancs), alors

 SsortingngUtils.isBlank(Ssortingng str); 

La méthode de sortingm devrait être très bien pour vous.

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

Renvoie une copie de la chaîne, les espaces blancs de début et de fin étant omis. Si cet object Ssortingng représente une séquence de caractères vide ou si les premier et dernier caractères de la séquence de caractères représentés par cet object Ssortingng ont tous deux des codes supérieurs à ‘\ u0020’ (le caractère espace), une référence à cet object Ssortingng est renvoyée.

Sinon, s’il n’y a pas de caractère avec un code supérieur à ‘\ u0020’ dans la chaîne, un nouvel object Ssortingng représentant une chaîne vide est créé et renvoyé.

Sinon, soit k l’index du premier caractère de la chaîne dont le code est supérieur à ‘\ u0020’, et soit m l’index du dernier caractère de la chaîne dont le code est supérieur à ‘\ u0020’. Un nouvel object Ssortingng est créé, représentant la sous-chaîne de cette chaîne qui commence par le caractère à l’index k et se termine par le caractère à l’index m, c’est-à-dire le résultat de cette sous-chaîne (k, m + 1).

Cette méthode peut être utilisée pour couper les espaces à partir du début et de la fin d’une chaîne. en fait, il coupe également tous les caractères de contrôle ASCII.

Retourne: Une copie de cette chaîne avec des espaces blancs de début et de fin supprimés, ou cette chaîne si elle ne contient aucun espace blanc de début ou de fin.

Vous pouvez couper et comparer à une chaîne vide ou vérifier éventuellement la longueur pour 0.

Alternative:

 boolean isWhiteSpaces( Ssortingng s ) { return s != null && s.matches("\\s+"); } 

Avec JDK / 11, vous pouvez maintenant utiliser l’API Ssortingng.isBlank pour vérifier si la chaîne donnée n’est pas composée de

 Ssortingng str1 = " "; System.out.println(str1.isBlank()); // made up of all whitespaces, prints true Ssortingng str2 = " a"; System.out.println(str2.isBlank()); // prints false 

Le javadoc pour le même est:

 /** * Returns {@code true} if the ssortingng is empty or contains only * {@link Character#isWhitespace(int) white space} codepoints, * otherwise {@code false}. * * @return {@code true} if the ssortingng is empty or contains only * {@link Character#isWhitespace(int) white space} codepoints, * otherwise {@code false} * * @since 11 */ public boolean isBlank() 

sortingm () et les autres expressions régulières mentionnées ne fonctionnent pas pour tous les types d’espaces blancs

ie: Caractère Unicode ‘SEPARATEUR DE LIGNE’ http://www.fileformat.info/info/unicode/char/2028/index.htm

Fonctions Java Character.isWhitespace () couvre toutes les situations.

C’est pourquoi la solution mentionnée précédemment SsortingngUtils.isWhitespace (Ssortingng) / ou SsortingngUtils.isBlank (Ssortingng) doit être utilisée.

Si vous utilisez Java 8+, vous pouvez utiliser un stream pour vérifier qu’une chaîne n’est pas uniquement blanche:

 !s.chars().allMatch(Character::isWhitespace)); 

En plus de ne nécessiter aucune bibliothèque tierce telle qu’Apache Commons Lang, cette solution présente l’avantage de traiter n’importe quel caractère d’espace blanc, et pas seulement ' ' espaces, comme le ferait une solution basée sur sortingm découpes suggérée dans de nombreuses autres réponses. Vous pouvez vous référer aux Javadocs pour obtenir une liste exhaustive de tous les types d’espaces blancs pris en charge.

Notez que cette méthode couvre également le cas où la chaîne est vide, conformément à la documentation de allMatch :

Si le stream est vide, true est renvoyé et le prédicat n’est pas évalué.