【发布时间】:2017-03-12 02:21:55
【问题描述】:
我对编码很陌生,似乎无法返回任何东西。我需要将大写字符转换为小写,反之亦然。这是我的代码:
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。我没有使用准备好的方法,因为我的任务需要它。
【问题讨论】:
-
有什么问题?存在逻辑错误,因为输入了
if- 或else- 块,因此循环仅执行一次 iff。str.length() > 0。您使用的return语句(语法上)正确。 -
“好像不行”? 具体。很可能,您对变量和字符串在 Java 中的工作方式做出了多个错误的假设——字符串是不可变的,并且为变量赋值不会改变其他拥有自己变量的对象。
-
你没有理由拒绝每个人的回答,
-
@PranoySarkar 因为 2/5 是“每个人”(是的,我投了反对票,但在海报回应了我的投诉后我撤回了反对票)。