我正在尝试解决有关返回新字符串的方法的练习,其中大写字母更改为小写,小写字母更改为大写。 它只返回字符串的第一个字符,我不知道是什么导致它。 这是我的代码:
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 :(得分:0)
您正在重新定义循环的每次迭代的字符串s
。您将需要连接新的chararcters以形成最终的大小写交换字符串。
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;
}