我对编码非常陌生,似乎无法返回任何内容。我需要将大写字符转换为小写,反之亦然。这是我的代码:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
invString(str);
sc.close();
}
private static String invString(String str) {
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch > 97) {
ch = Character.toUpperCase(ch);
return str;
} else {
ch = Character.toLowerCase(ch);
return str;
}
}
return null;
}
我究竟做错了什么? (就返回而言,代码尚未完成)
编辑****************
感谢您的有用评论,据我了解,我没有存储修改的地方,所以我添加了
String res = "";
并一直将值添加到String res
中,但是最后,当返回res时,我仍然没有得到任何信息输出...这里是整件事:public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String st = invString(str);
sc.close();
}
private static String invString(String str) {
String res = "";
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (65 <= ch && ch <= 90) {
ch += 32;
res += ch;
} else if (97 <= ch && ch <= 122) {
ch -= 32;
res += ch;
}
}
return res;
}
ps。我没有使用现成的方法,因为我的任务要求这样做。
最佳答案
您返回str对象,而根本不更新它。
您应该生成一个新字符串,在该字符串中放入要颠倒大小写的字符。
检查中的最后答案
How can I invert the case of a String in Java?