La meilleure façon de couper les espaces dans une chaîne
Question
Comment puis-je réduire les espaces intérieurs en ne laissant qu'un seul espace en tenant compte des performances?
Input: AA BB Output: AA BB Input: A A Output: A A
La solution
System.out.println(" AA BB".replaceAll("\\s+", " ").trim());
Sortie:
AA BB
Remarque: contrairement à certaines des solutions proposées ici, cela remplace également un seul onglet par un seul espace. Si vous ne disposez d'aucun onglet, vous pouvez utiliser " {2,} " au lieu de cela qui sera encore plus rapide:
System.out.println(" AA BB".replaceAll(" {2,}", " ").trim());
Autres conseils
Remplacez deux espaces ou plus " \\ s {2,} "
par un seul espace " "
et effectuez ensuite un trim ()
pour supprimer les espaces de début et de fin, comme indiqué dans le premier exemple.
output = input.replaceAll("\\s{2,}", " ").trim();
s = s.replaceAll("\\s+", " " ).trim();
"Hello a a g g a gag gs gs@".replaceAll( "[ ]+{2}", " ") ).trim();
Il existe des réponses correctes ici, par exemple:
s = s.replaceAll("\\s+", " " ).trim();
Mais je pense qu'il est également important de choisir la bonne question. Au lieu de demander de couper une Chaîne
à l'aide d'expressions régulières, pourquoi ne pas simplement demander de couper le Chaîne
et permettre aux personnes qui répondent de vous montrer la meilleure stratégie?
Il existe peut-être de meilleures façons de réduire les espaces que d’utiliser une expression régulière. Il existe certainement d'autres moyens.