java - Java 本身会改变字符的大小
问题描述
我是java初学者在做任务时遇到问题代码本身在单词riverrrrr r small到R large的变化
import java.lang.StringBuilder;
import java.util.Arrays;
class Solution {
static String toCamelCase(String s) {
if (s.contains("_")) {
s = s.replace("_", "-");
}
String[] list = s.split("-");
String nowa = "";
String result = "";
String result1 = "";
System.out.println(Arrays.toString(list));
for (int i = 0; i < list.length; i++) {
if (Character.isUpperCase(list[0].charAt(0))) {
nowa = list[i].replace(list[i].charAt(0), list[i].toUpperCase().charAt(0));
result += nowa;
System.out.println(nowa);
result1 = result;
}
if (Character.isLowerCase(list[0].charAt(0))) {
nowa = list[i].replace(list[i].charAt(0), list[i].toUpperCase().charAt(0));
result += nowa;
result1 = result.replace(result.charAt(0), result.toLowerCase().charAt(0));
}
}
return result1;
}
}
为什么要在 RiverRRRRR 上更改riverrrrr ?我只想要 Riverrrrr,为什么 rrrrrr 是大写的?
解决方案
public String replace(char oldChar,char newChar)它将替换所有匹配的字符
返回一个新字符串,该字符串是用 newChar 替换此字符串中所有出现的 oldChar 所产生的。
利用replaceFirst()
public String replaceFirst(String regex, String replacement)
用给定的替换替换此字符串中与给定正则表达式匹配的第一个子字符串。
在您的代码中将其更改为
nowa = list[i].replace(list[i].charAt(0), list[i].toUpperCase().charAt(0));
这个
nowa = list[i].replaceFirst(String.valueOf(list[i].charAt(0)), String.valueOf(list[i].toUpperCase().charAt(0)));
输入 : "lake_riverrrr"
输出 : lakeRiverrrr
推荐阅读
- css - 是否可以使用 user-scalable=no 水平滚动?
- google-slides-api - 使用 Google Slides API 有没有办法知道形状中文本的高度?
- php - Laravel "^6.18.35" “目标 [Illuminate\Contracts\Bus\Dispatcher] 不可实例化。”
- amazon-web-services - 分布式设置中的 AWS 数据传输估计值
- javascript - 开玩笑 - 找不到模块
- javascript - 使用 Redux 为 outsideClick 函数创建 HOC
- python - 来自 skimage 但在 Pytorch 中的“view_as_windows”
- python - 如何使用 R 在 MLFlow 中保存模型并在 Azure Databricks 中获取它们的阶段?
- docker - docker multi-stage build Go image - x509:由未知权威签署的证书
- sql - 如何跨列选择非空不相等值?