Comment supprimer les espaces blancs en double (y compris les tabulations, les retours à la ligne, les espaces, etc.) dans une chaîne en utilisant Java?
java
string
whitespace
sans cervelle
la source
la source
\s+
mais que signifie 2 contre-oblique \\?"\\"
représente la chaîne constituée d'une seule barre oblique inverse. Donc, pour\s+
vous représenter, écrivez"\\s+"
.Vous pouvez utiliser l'expression régulière
et
remplacez-le par
$1
.Code Java:
Si l'entrée est,
"foo\t\tbar "
vous obtiendrez"foo\tbar "
comme sortieMais si l'entrée est,
"foo\t bar"
elle restera inchangée car elle n'a pas de caractères blancs consécutifs.Si vous traitez tous les caractères d'espacement (espace, tabulation verticale, tabulation horizontale, retour chariot, saut de page, nouvelle ligne) comme un espace, vous pouvez utiliser l'expression régulière suivante pour remplacer n'importe quel nombre d'espace blanc consécutif par un seul espace:
Mais si vous souhaitez remplacer deux espaces blancs consécutifs par un seul espace, vous devez faire:
la source
Essayez ceci - vous devez
import java.util.regex.*;
Où se
string
trouve votre chaîne sur laquelle vous devez supprimer les espaces blancs en doublela source
salut le moyen le plus rapide (mais pas le plus joli) que j'ai trouvé est
cela fonctionne assez vite sur Android contrairement à une regex
la source
la source
Bien qu'il soit trop tard, j'ai trouvé une meilleure solution (qui fonctionne pour moi) qui remplacera tous les espaces blancs consécutifs de même type par un espace blanc de ce type. C'est:
sera
Notez qu'il y a encore des espaces blancs au début et à la fin. Ma solution complète est donc:
Ici,
trim()
remplace toutes les chaînes d'espace blanc de début et de fin par "".(\\s)
est pour capturer\\s
(c'est-à-dire des espaces blancs tels que '', '\ n', '\ t') dans le groupe # 1 .+
signe correspond à 1 ou plusieurs jetons précédents. Il(\\s)+
peut donc s'agir de caractères consécutifs (1 ou plus) parmi n'importe quel caractère d'espacement («», «\ n» ou «\ t»).$1
sert à remplacer les chaînes correspondantes par la chaîne du groupe n ° 1 (qui ne contient qu'un seul caractère d'espace blanc) du type correspondant (c'est-à-dire le caractère d'espace blanc unique qui correspond). La solution ci-dessus changera comme ceci:sera
Je n'ai pas trouvé ma solution ci-dessus ici, je l'ai donc postée.
la source
Si vous souhaitez vous débarrasser de tous les espaces superflus de début et de fin, vous voulez faire quelque chose comme ceci:
Ensuite, vous pouvez supprimer les doublons en utilisant les autres stratégies répertoriées ici:
la source
Vous pouvez également essayer d'utiliser String Tokeniser, pour n'importe quel espace, onglet, nouvelle ligne, etc. Un moyen simple est,
la source
Cela peut être possible en trois étapes:
la source