2017-10-15 11 views
-3

私は自分自身の文字列逆アルゴリズムを書こうとしています(これはすでに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(); 

} 
+0

が重複する可能性をより多くのを読むことができます7569335/reverse-a-string-in-java) –

+2

次のステートメントはどうなると思いますか? 'char [] stringChars2 = stringChars;'? –

+0

[配列Javaのコピーを作成](// stackoverflow.com/q/5785745) – Tom

答えて

0
char[] stringChars = myString.toCharArray(); 
char[] stringChars2 = stringChars; 

ではなく、このような何かを試してみてください:

char[] stringChars = myString.toCharArray(); 
char[] stringChars2 = myString.toCharArray(); 

あなたはそれについて[Javaで文字列をリバース](https://stackoverflow.com/questions/のhere

+1

ありがとう、私は今これが愚かな間違いですが、あなたは本当に私を助けました。 –

+0

お手伝いいただきありがとうございます。また、Stack Overflowへようこそ。回答があなたの問題を解決した場合は、それを受け入れたものとしてマークしてください:) – DobromirM

関連する問題