Je me demandais s'il était possible de mixer deux chaînes en Java. Supposons que jeMixer deux chaînes en Java
11111
et
22222
Quelle serait la meilleure façon de les combiner pour former?
1212121212
Je me demandais s'il était possible de mixer deux chaînes en Java. Supposons que jeMixer deux chaînes en Java
11111
et
22222
Quelle serait la meilleure façon de les combiner pour former?
1212121212
En supposant à la fois les chaînes sont de la même longueur, vous pouvez simplement écrire une boucle pour passer en revue les caractères et faire ce que vous voulez:
String s1, s2; /* input strings */
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s1.length(); i++) {
sb.append(s1.charAt(i));
sb.append(s2.charAt(i));
}
String result = sb.toString();
Oui - itérer la première chaîne, et pour chaque caractère dans ce, append à un constructeur du caractère dans la même position de la deuxième chaîne (si elle existe):
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str1.length(); i++) {
sb.append(str1.charAt(i));
if (str.length() > i) {
sb.append(str2.charAt(i));
}
}
return sb.toString();
Je me demande si l'exemple donné est intentionnel, à savoir qu'ils ont tous 1 caractère répété. Dans ce cas, c'est beaucoup plus simple. Si ce n'est pas le cas, les autres réponses sont bonnes.
Non, cela devrait fonctionner quand une chaîne de la même longueur, et cela ne devrait pas poser de problème si les caractères sont répétés ou non . –
est ici une implémentation qui conserve le reste des chaînes de longueur inégale:
public static String mix(String a, String b) {
final int aLength = a.length();
final int bLength = b.length();
final int min = Math.min(aLength, bLength);
final StringBuilder sb = new StringBuilder(aLength + bLength);
for(int i = 0; i < min; i++) {
sb.append(a.charAt(i));
sb.append(b.charAt(i));
}
if (aLength > bLength) {
sb.append(a, bLength, aLength);
} else if (aLength < bLength) {
sb.append(b, aLength, bLength);
}
return sb.toString();
}
Cela ne se rapporte pas à regex, alors j'ai enlevé l'étiquette. – casablanca
S'il s'agit de devoirs, merci de le marquer comme tel –
-1 (Aucune approche/tentative de devoirs existante.) –