java - 使用 charAt 将大写字符串转换为小写
问题描述
我想知道以下代码到底有什么问题。我在 if 语句之后的行上出现错误。此代码接受一个包含大写和小写字母的字符串,但在将大写字母转换为小写后返回该字符串。
public class Main {
public static void main(String[] args) {
toLowerCase("HeLloWoRlD!");
}
private static String toLowerCase(String str) {
for (int i = 0; i < str.length(); i++) {
if (Character.isUpperCase(str.charAt(i))) {
str.charAt(i) = Character.toLowerCase(str.charAt(i));
}
}
return str;
}
}
解决方案
str.charAt(i)
不能是赋值运算符的左侧。它是方法调用返回的值,您不能分配给它。
此外,String
s 是不可变的。您不能修改 的字符str
。您必须String
为您的方法创建一个新的返回。
例如:
private static String toLowerCase(String str) {
StringBuilder sb = new StringBuilder(str.length());
for (int i = 0; i < str.length(); i++) {
if (Character.isUpperCase(str.charAt(i))) {
sb.append (Character.toLowerCase(str.charAt(i)));
} else {
sb.append (str.charAt(i));
}
}
return sb.toString();
}
推荐阅读
- d3.js - 在两个重叠元素上捕获鼠标悬停事件
- javascript - 无法让名为“kareoke”的函数工作
- python - python numba中非常大的整数
- visual-studio-code - 如何在 Visual Studio Code 中更改在终端输入的命令的颜色?
- javascript - 加载应用程序时调用函数
- datadog - 自定义指标未发送到 datadog
- batch-file - 搜索文件并返回匹配最多的父目录的名称?
- python - 切片 3d 数组
- python - python 在哪里使用忽略大小写
- python - 如何在 ndarray 中找到索引的值并转换为 pandas Dataframe?