2013-04-08 2 views
-5
public class ggg 
{ 
static int y=0; 
static int x; 

static String h; 
public static void main(String [] args) 
{ 

    String s = "hadoyef"; 
    x = s.length(); 
    System.out.println(s); 
    reverse(s); 
    System.out.println(s); 
} 

public static String reverse(String s){ 

    if (s.length() == 1){ 
     //System.out.print(s); 
     h = h + s.substring(0,1); 
     s=h; 
     System.out.println(s); 
     return s; 
    } 
    else{ 
     h = h + s.substring(s.length()-1,s.length()); 
     return reverse (s.substring(0, s.length()-1)); 

     //System.out.print(s.substring(0,1)); 

    } 
} 
} 

Пожалуйста, помогите мне. Я не понимаю, почему s = h; часть не работает. Игнорируйте отсюда его заставляя меня публиковать более подробную информацию и idk, что бы сказать, что я просто собираюсь размахивать, пока это не будет работать благодаря тому, кто помогает.Почему не эта работа? Значение строки не изменится. Рекурсия

+5

Определения "не работает". –

+0

читать [Является ли Java «пропущенным ссылкой»?] (Http://stackoverflow.com/questions/40480/is-java-pass-by-reference) – jlordo

ответ

5

Когда вы вызываете reverse(s); в main, вы не присваиваете результат чему-либо.

+0

слишком расплывчато. – frank

+0

@frank Вы только вызываете реверс один раз в главном. Вам нужно напечатать возвращаемое значение, вместо того, чтобы снова напечатать '' '. –

+0

@frank Сфера применения. вы говорите 's = h' в обратном методе, который ограничивается своей переменной' String s', которая собирается в методе. Это не повлияет на 'String s' в основном. Чтобы увидеть эффект, используйте 'System.out.println (reverse (s));' в вашем основном методе. – Smit

1

потому что вы не используете результат метода reverse (s); почему вы возвращаете String, когда он не используется?

+0

его домашнее задание, и я должен вернуть строку, которую я отправил. – frank

3

Вам необходимо внести 2 изменения в свой код.

  1. Инициализировать статический Струнный час, как:

    static String h = ""; 
    
  2. Использования возвращаемого значение в основном методе, как:

    s = reverse(s); 
    
+0

Спасибо, друг! – frank

Смежные вопросы