我对编码非常陌生,似乎无法返回任何内容。我需要将大写字符转换为小写,反之亦然。这是我的代码:

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?

10-07 19:01
查看更多