Chaîne: Comment faire pour remplacer plusieurs caractères possibles avec un seul personnage?
Je voudrais remplacer tous les '.'
et ' '
avec un '_'
mais je n'aime pas mon code...
est-il un moyen plus efficace de le faire est d':
String new_s = s.toLowerCase().replaceAll(" ", "_").replaceAll(".","_");
?
toLowerCase() juste là parce que je veux qu'il écrit en minuscule ainsi...
- ah mon code ne fonctionne même pas... je suppose que parce qu'il est dit replaceAll utilise des expressions régulières et donc le '.' est un problème
Vous devez vous connecter pour publier un commentaire.
EDIT:
replaceAll
est l'utilisation d'expressions régulières, et à l'aide de.
à l'intérieur d'une classe de caractères[ ]
juste reconnaît un.
plutôt que de n'importe quel caractère.s.replaceAll("[\\s\\.]", "_")
Utilisation
String#replace()
au lieu deString#replaceAll()
, vous n'avez pas besoin de regex pour un seul caractère de remplacement.J'ai créé la classe suivante pour tester ce qui est plus rapide, lui donner un essai:
J'obtiens le résultat suivant:
Bien sûr, je n'ai pas présenté le app pour la consommation de mémoire, qui ont donné des résultats très différents.
replace()
parce que des objets créés et la compilation du Motif. Mais pour les petitsString
s il n'a vraiment pas beaucoup d'importance... seulement si vous prévoyez de l'utiliser sur une boucle ou quelque chose.