Mettre un espace dans une chaîne de caractères
En supposant que j'ai une Chaîne comme "MikeJackson" je suis en train d'essayer de trouver un moyen de mettre un espace entre les deux, alors il devient "Mike Jackson". Et puis en appliquant la même méthode à l'autre de la chaîne de dire "JohnBull" me redonner "John Bull". C'est le code je suis venu avec:
public class Test{
public Test(){
}
public void sep(String s){
s = s + " ";
char[] charArray = s.toCharArray();
int l = s.length();
for (int i = 0; i < l; i++){
char p = ' ';
if(Character.isUpperCase(s.charAt(0))){
continue;
}
else if (Character.isUpperCase(s.charAt(i))){
int k = s.indexOf(s.charAt(i));
charArray[l] = charArray[--l];
charArray[k-1] = p;
}
//System.out.println(s.charAt(i));
}
}
public static void main (String args[]){
Test one = new Test();
one.sep("MikeJackson");
}
}
Mon idée était d'ajouter un espace à la Chaîne, de sorte que "MikeJackson" devient "Mike Jackson" et ensuite déplacer les personnages sur la place à droite (vérifier où je trouve une majuscule) en ignorant la première majuscule. Ensuite, mettre un caractère ''à la place du caractère" J " mais maj 'J' vers la droite. C'est ce que j'essayais d'atteindre avec ma méthode, mais il semble j'ai besoin de quelques lignes directrices. Si quelqu'un pouvait l'aider. Merci.
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Pour chaque haut caractère, je suis l'ajout d'un espace avant.
En outre, il fonctionne avec plusieurs mots en majuscules.
Je suis
Word1 Word2 Word3
pourWord1Word2Word3
.(A-Z)
pour se débarrasser de la$1
dans le remplacement.Il suffit d'ajouter un espace si le caractère suivant est en majuscules.
Question similaire ici:
Insérer un Espace Après le Capital de la lettre
essayer et si vous avez des questions, laissez-nous savoir!
le code de référence est ici:
À l'aide de
String.replaceAll
:Résultats dans
Some Long Name
.string.replaceAll("([a-z0-9]+)([A-Z])", "$1 $2")
pour votre exemple.Chaîne est
final
etimmutable
, vous ne pouvez pas le modifier, vous pourrez toujours l'utiliser pour créer un nouveau, et l'assigner à une variable quelconque.Être qui a dit, je vous recommande de regarder pour la première non-nulle de l'indice de majuscules, d'obtenir de la sous-chaîne où il est situé, de stocker les deux sous-chaînes et de les ajouter et de l'espace entre les deux.
String s = "1"; s+="2";
. Cela signifie simplement que je ne peux pas le prolongerLe moyen le plus facile pour faire le tour de ce, dans ce cas serait d'utiliser des expressions régulières
Rendements:
Mike Jackson