2014-09-24 3 views
1

출력의 간단한보기를보기 위해 옵션 창을 주석 처리했습니다. 내가 잘못하고 있으며 컴퓨터 과학 수업을 시작했는지 확실하지 않습니다. 내 출력은 입력과 동일하지만 테스트 한 결과 리버스 문자열 방법이 정확하다는 것을 알고 있습니다.작동하지 않는 문자열 반전

import javax.swing.JOptionPane; 


public class ReverseString 
{ 
    public static void reverse(String n) 
    { 
    for(int i=0; i<n.length();i++) 
    { 
     n=n .substring(1, n.length()-i) 
     +n.substring(0,1) 
     +n.substring(n.length()-i, n.length()); 
    } 
    } 

    public static void main (String []arg) 
    { 
    String n = (JOptionPane.showInputDialog(null,"Input String to reverse")); 
    reverse(n); 
    System.out.println(n); 
    // JOptionPane.showInputDialog(null,"Reversed String is: "+Input); 
    } 
} 
+0

어떤 오류를받을 수 있나요? 클래스 이름을 통해 역순환 함수에 액세스해야합니다. 'ReverseString.reverse (n); –

+0

괜찮습니다. –

+0

@ LJ_1102 메쏘드가 같은 클래스에 포함되어 있기 때문에 클래스 이름은 필요하지 않지만 어떤 것은 그것이 최선의 방법이라고 말해 줄 것입니다. – LINEMAN78

답변

1
public static void reverse(String n) 

수익 유형은하지 않도록 어떤 콘솔에서 역, 그래서이 함수는 아무것도 반환하지 않습니다 void입니다.

왜 같은 결과가 나옵니까? 당신이 후 System.out.println(n);를 추가하면 그냥 라인

System.out.println(n); <-- you did not pass this n into your function. 
          Even though if you did, nothing would happened because 
          your reverse return type is void       

에 따라 그것을 밖으로 인쇄하기 때문에 은 루프, 코드는 잘 작동합니다.

public static void reverse(String n) { 
     for (int i = 0; i < n.length(); i++) { 
      n = n.substring(1, n.length() - i) 
        + n.substring(0, 1) 
        + n.substring(n.length() - i, n.length()); 
     } 
     System.out.println(n); <---- print out the reverse result on the console 
            from the reverse function 
    } 

Read More About Returning a Value from a Method

+0

또한 문자열을 뒤집기위한 더 쉬운 방법은'new StringBuilder (n) .reverse(). toString()'입니다. 현재 사용되는 방법은 문자열 풀을 오염시킵니다 (초보자가 이것을 알지는 못하지만 모든 Java 개발자는 결국 배워야 만합니다). – LINEMAN78

+0

@ LINEMAN78 전적으로 동의하지만 그 이상의 그녀를 혼동하지 마십시오. :) –

+0

Yessss !! 너 굉장하다! 이제 joptionspane의 입력 막대를 사용하지 않고 새 문자열을 표시하는 대화 상자가 필요합니다. –