首页 > 解决方案 > 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 是大写的?

在此处输入图像描述

标签: javauppercase

解决方案


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


推荐阅读