私は自分自身の文字列逆アルゴリズムを書こうとしています(これはすでにJavaに存在しますが、私は教育のためにこれをやっています)。以下のコードは私がこれまで持っていたものです。反転した文字列の半分だけを出力します。私はいくつかのデバッグを行っており、理由はそれが変更されているということですstringChars2 と同じ時刻にと同時にの文字列がありますが、なぜ私は変更しようとしているのか分かりません。 stringCharsすべての助けが大いに感謝します。java文字列逆アルゴリズム
EDIT私の質問は、以前に尋ねられた「文字列を逆にする方法」ではありませんでしたが、教科書なしで変更した場合の私のオブジェクトの理由は以下のとおりです。 stringChars
そう基本的にそれらは、同一であり、最初に変更したときにも第二のを変更するように、同じオブジェクトにstringChars2
を割り当てる2行目
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();
}
が重複する可能性をより多くのを読むことができます7569335/reverse-a-string-in-java) –
次のステートメントはどうなると思いますか? 'char [] stringChars2 = stringChars;'? –
[配列Javaのコピーを作成](// stackoverflow.com/q/5785745) – Tom