J'essaye d'écrire mon propre algorithme de reverse string (je sais que ça existe déjà en java mais je le fais pour l'éducation). Le code ci-dessous est ce que j'ai jusqu'ici. Il ne produit que la moitié de la chaîne inversée. J'ai fait un peu de débogage et la raison en est qu'il change stringChars2 en même temps que stringChars mais je ne sais pas pourquoi cela se produit que j'essaie seulement de changer stringChars. Toute l'aide grandement appréciée. Ma question n'était pas "comment inverser une chaîne" qui a déjà été posée ... mais pourquoi mes objets changeaient sans instruction, la réponse ci-dessous explique complètement le problème.algorithme de reverse string java
public static void main(String[] args) {
//declare variables
Scanner input = new Scanner(System.in);
String myString = "";
int length = 0, index = 0, index2 = 0;
//get input string
System.out.print("Enter the string you want to reverse: ");
myString = input.next();
//find length of string
length = myString.length()-1;
index2 = length;
//convert to array
char[] stringChars = myString.toCharArray();
char[] stringChars2 = stringChars;
//loop through and reverse order
while (index<length) {
stringChars[index] = stringChars2[index2];
index++;
index2--;
}
//convert back to string
String newString = new String(stringChars);
//output result
System.out.println(newString);
//close resources
input.close();
}
double possible de [inverser une chaîne en Java] (https://stackoverflow.com/questions/ 7569335/reverse-a-string-in-java) –
À votre avis, que fait l'instruction suivante: 'char [] stringChars2 = stringChars;'? –
[Faire une copie du tableau Java] (// stackoverflow.com/q/5785745) – Tom