java - 有什么方法可以将字符串中的第一个单词转换为驼峰格式吗?

标签 java

我想编写java代码将左侧字符串转换为右侧字符串。

1234_hello -- 1234_Hello
hello Data -- Hello Data
hELLO data -- Hello data
1234hEllo  -- 1234Hello
heLLO1234hEllo -- Hello1234hEllo
$hello     -- $Hello

您能帮忙解决一下吗? 谢谢!

最佳答案

这是一个解决方案:

public static void main(String[] args) {
    try {
        System.out.println(convertString("1234_hello"));
        System.out.println(convertString("hello Data"));
        System.out.println(convertString("hELLO data"));
        System.out.println(convertString("1234hEllo"));
        System.out.println(convertString("heLLO1234hEllo"));
        System.out.println(convertString("$hello"));
        System.out.println(convertString("$1234hEllo_TTHjjZ"));
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

private static String convertString(String string) {

    String result = string;

    final String regex1 = "^([^a-zA-Z]+)([a-zA-Z])([a-zA-Z]*)([^a-zA-Z].*)$";
    final String regex2 = "^([a-zA-Z])([a-zA-Z]*)([^a-zA-Z].*)$";
    final String regex3 = "^([^a-zA-Z]+)([a-zA-Z])([a-zA-Z]*)$";

    final Pattern pattern1 = Pattern.compile(regex1, Pattern.MULTILINE);
    final Pattern pattern2 = Pattern.compile(regex2, Pattern.MULTILINE);
    final Pattern pattern3 = Pattern.compile(regex3, Pattern.MULTILINE);

    Matcher matcher1 = pattern1.matcher(string);
    Matcher matcher2 = pattern2.matcher(string);
    Matcher matcher3 = pattern3.matcher(string);

    if (matcher1.find()) {
        result = matcher1.group(1) + matcher1.group(2).toUpperCase() + matcher1.group(3).toLowerCase() + matcher1.group(4);
    }
    else if (matcher2.find()) {
        result = matcher2.group(1).toUpperCase() + matcher2.group(2).toLowerCase() + matcher2.group(3);
    }
    else if (matcher3.find()) {
        result = matcher3.group(1) + matcher3.group(2).toUpperCase() + matcher3.group(3).toLowerCase();
    }

    return result;
}

结果符合预期:

1234_Hello
Hello Data
Hello data
1234Hello
Hello1234hEllo
$Hello
$1234Hello_TTHjjZ

关于java - 有什么方法可以将字符串中的第一个单词转换为驼峰格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68282329/

相关文章:

java - 检索列表大小时发生 ConcurrentModificationException

java - 合并列表中的树形图

java - 在 Java 中查找 OWL 类

java - <identifier> HashSet 上的 add 方法出现预期 Java 编译时错误

java - 如何从它本身(也是主类)更新GUI?

JavaFX - 尺寸的 CSS 变量?

java - 排序集合未按预期工作

java - 访问 JAX-WS 调度响应的内容

java - 无法从套接字读取

java - Android Studio,找不到我的应用程序 - 图标