Regex GWT中的正则表达式

Regex GWT中的正则表达式,regex,gwt,Regex,Gwt,请帮我解决我的小问题。我有一根绳子 String str=“aaa bbb ccc ddd” 我只是想把每个单词改成这样的大写字母开头 “Aaa Bbb Ccc Ddd” 这是我的密码 String[] r = str.split(" -"); String result = ""; for (int i = 0; i < r.length; i++) { result += r[i].substring(0,

请帮我解决我的小问题。我有一根绳子

String str=“aaa bbb ccc ddd”

我只是想把每个单词改成这样的大写字母开头

“Aaa Bbb Ccc Ddd”

这是我的密码

String[] r = str.split(" -");
            String result = "";
            for (int i = 0; i < r.length; i++) {
                result += r[i].substring(0, 1).toUpperCase()
                        .concat(r[i].substring(1))
                        + " ";
                System.out.println(result);
            }
String[]r=str.split(“-”);
字符串结果=”;
对于(int i=0;i
但我可能在split方法中错误地编写了正则表达式。所以我总是得到下面的结果

“Aaa bbb ccc ddd”

我的仪表只是空间和仪表盘。谢谢。

您在“空格后加破折号”,而不是“空格或破折号”,这将是
[-]
(添加新分隔符时要小心,破折号在括号内有特殊含义,因此必须出现在开头或结尾)

但是,代码的其余部分存在问题:

  • String#toUpperCase()
    在JVM中依赖于语言环境(即,如果您也在服务器端使用代码,或者GWT以后可能会模仿JVM),这意味着在大多数语言环境中,它会将
    i
    转换为
    i
    ,但在土耳其语中则是
    i
    。GWT 2.7引入了对
    Locale.ROOT
    Locale.ENGLISH
    Locale.US
    的支持,用于您不希望结果因当前语言环境而异的情况,因此您现在可以使用
    .toUpperCase(Locale.ROOT)
    对语言环境不敏感。还要注意的是,
    Character.toUpperCase
    不会出现此问题

  • 您使用空格连接,因此结果将是
    Aaa-Bbb-Ccc-Ddd
    ,而不是
    Aaa-Bbb-Ccc-Ddd

我们不要谈论
System.out.println
,因为我怀疑它只是出于调试目的