2014-07-08 2 views
0

Я пытаюсь решить упражнение относительно метода, который возвращает новую строку, в которой заглавные буквы заменены на строчные и строчные буквы, изменяется на верхний регистр. Он просто возвращает первый символ строки, я не знаю, что его вызывает. Вот мой код:Почему мой метод swapCase возвращает только один символ?

import java.util.Scanner; 

public class Test { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("Enter a string: "); 
     String s = input.nextLine(); 

     System.out.print("The new string is: " + swapCase(s)); 

    } 

    public static String swapCase(String s) { 

     for (int i = 0; i < s.length(); i++) { 

      if (Character.isLowerCase(s.charAt(i))) { 
       s = String.valueOf(Character.toUpperCase(s.charAt(i))); 
      } else if (Character.isUpperCase(s.charAt(i))) { 
       s = String.valueOf(Character.toLowerCase(s.charAt(i))); 
      } 

     } 

     return s; 
    } 

} 

ответ

0

Вы переопределение строки s каждой итерации вашего цикла. Вы захотите объединить ваши новые chararcters, чтобы сформировать окончательную строку с заменой case.

public static String swapCase(String s) { 
    String swapped = ""; 
    for (int i = 0; i < s.length(); i++) { 

     if (Character.isLowerCase(s.charAt(i))) { 
      swapped += String.valueOf(Character.toUpperCase(s.charAt(i))); 
     } else if (Character.isUpperCase(s.charAt(i))) { 
      swapped += String.valueOf(Character.toLowerCase(s.charAt(i))); 
     } 

    } 

    return swapped; 
} 
+0

Спасибо! Теперь я понимаю, что я сделал не так! – Kim12

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