2017-10-15 5 views
-3

나는 내 자신의 문자열 역방향 알고리즘을 작성하려고합니다. (자바에 이미 존재하지만, 나는 이것을 교육용으로하고 있습니다.) 아래 코드는 제가 지금까지 가지고있는 것입니다. 반전 된 문자열의 절반 만 출력합니다. 나는 약간의 디버깅을했기 때문에 그 이유가 변하고있다. stringChars2 stringChars와 같은 시간에과 같은 시간이 올랐지 만, 나는 그저 변경하려고하는 이유가 전혀 모른다. stringChars. 모든 도움이 크게 감사드립니다.자바 문자열 역방향 알고리즘

EDIT 내 질문은 "이전에 물어 보았던 문자열을 뒤집는 방법"이 아니었지만, 지시없이 변경 한 경우, 아래의 답변에서 문제를 완전히 설명하는 이유는 무엇입니까? 당신이 stringChars과 같은 객체에 stringChars2를 할당하는 두 번째 줄에

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

[자바에서 문자열을 역]의 사용 가능한 복제 (https://stackoverflow.com/questions/ 7569335/reverse-a-string-in-java) –

+2

다음 진술을 어떻게 생각하십니까?'char [] stringChars2 = stringChars;'? –

+0

[배열 자바 복사본 만들기] (// stackoverflow.com/q/5785745) – Tom

답변

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

그래서 기본적으로 그들은 하나이며 동일하고 먼저 변경하는 두 번째를 변경할 때뿐만 아니라. 대신이 같은

시도 뭔가 : 당신은 자세한 내용을보실 수 있습니다

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

그것에 대해 here

+1

고마워요, 지금은 바보 같은 실수입니다. 너 정말 나를 도와 줬어. –

+0

도와 주시겠습니까? 스택 오버플로를 환영합니다. 해답이 문제를 해결 한 경우 수락 된 것으로 표시하십시오. :) – DobromirM