我有一个UserTable格式的字符串。 我希望输出为user_table。 基本上用“_”和字母替换所有大写字母。 喜欢R=_R

我有这个代码,它工作正常。

public static String getTableName(String clazz){
        String name = (clazz.charAt(0)+"").toLowerCase();
        for(int itr=1;itr<clazz.length();itr++){
            char ch = clazz.charAt(itr);
            if(ch >=97 && ch <=122)
                name += ch;
            else
                name += ("_"+ ch).toLowerCase() ;

        }
        return name;
    }

我只是想要,如果这可以以更整洁的方式完成。

#1楼 票数:6 已采纳

建议:使用正则表达式,它使用下划线(不是在开头,但因此负面看后面(?!^) )前置大写字符,将结果转换为小写:

String input = "UserTable";
String result = input.replaceAll("(?!^)([A-Z])", "_$1").toLowerCase();
System.out.println(result); // user_table

#2楼 票数:0

您可以使用StringBuilder来实现此目的:

StringBuilder builder = new StringBuilder();
String input = "UserTable";

for (int i = 0; i < input.length(); i++) {
  char ch = input.charAt(i);

  if (i > 0 && Character.isUpperCase(ch)) {
    builder.append('_');
  }

  builder.append(Character.toLowerCase(ch));
}

String result = builder.toString();

  ask by Ekansh Rastogi translate from so

未解决问题?本站智能推荐:

8回复

是否有一种简单的方法来替换Java中字符串中任意位置的字符(并获取新的String)?

我知道没有简单的方法可以做到这一点。 假设我有以下字符串- 我想通过将第三个字符“ c”替换为“ x”来获取字符串。 很长的路要走- 有没有更简单的方法? 应该有一些功能,例如
9回复

用Java替换字符串中的所有“(”和“)”

如何用Java中的fullstop替换字符串中的所有“(”和“)”? 我试着用以下方式: 但它不起作用。 错误是: 我认为这个问题也存在于所有正则表达式中。 添加\\之前)不起作用。
1回复

如何替换字符串中除某些字符以外的所有字符?

电流输出: 1c1g1 想要的输出: 11c111g111111111111111111
2回复

用不同的字符替换字符串中的所有字符

你好,所以我有这个代码,我正在努力,基本上它将是一个游戏,你必须以句子的形式破解代码。 我遇到的问题是用代码中的字符替换句子中的字符。 关键字Tiger TIGERABCDFHJKLMNOPQSUVWXYZ就是您替换字符的代码示例。 基本上字母表成为关键字然后剩下的未使用的字母我试图
3回复

新的String()是否更新Java中的字符串池?

如果我写这样的话: 在哪些情况下字符串池会更新? 第一,第二还是两者? 提前致谢
1回复

仅使用循环替换字符串中字符的所有实例

因此,正如标题所示,我有一个家庭作业问题,无法解决。 仅使用基本的字符串方法(length,charAt,substring,equals,equalsIgnoreCase)和循环,我必须替换用户输入的字符串中字符的所有实例,并用用户想要的新字符来替换新字符串,以代替旧。 我不确定如何在不使
1回复

用唯一替换替换字符串中的所有实例

我正在尝试用唯一替换替换特定String的所有实例。 我想要的是: 如果我有这个字符串: 我想要这个输出: 我有的: 但是,传递给replaceAll的字符串不会再次被查询(现在我想起来很明显)。 与往常一样,任何答案或评论都将不胜感激。 SSCCE:
4回复

获取String中包含的所有字符串

在Java中,我需要在String中查找所有出现的String。 例如。 所以我需要能够抓住所有道路名称的内容。 在第一个例子中,我需要能够将String设置为“Example Road”。 伪代码: 在上面的示例中,字符串将具有内容“Example Road,Another