Java 为什么我的swapCase方法只返回一个字符?

Java 为什么我的swapCase方法只返回一个字符?,java,string,swap,Java,String,Swap,我试图解决一个关于返回一个新字符串的方法的练习,其中大写字母改为小写,小写字母改为大写。 它只返回字符串的第一个字符,我不知道是什么导致了它。 这是我的密码: import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("

我试图解决一个关于返回一个新字符串的方法的练习,其中大写字母改为小写,小写字母改为大写。 它只返回字符串的第一个字符,我不知道是什么导致了它。 这是我的密码:

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;
    }

}

在循环的每次迭代中,您都要重新定义字符串s。您将希望连接新字符以形成最后一个大小写交换字符串

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;
}