Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:convert";“HelloThere”;至;您好;_Java - Fatal编程技术网

Java:convert";“HelloThere”;至;您好;

Java:convert";“HelloThere”;至;您好;,java,Java,我想将文本中的所有大写字母转换为下划线,下面是一些示例 HelloThere -> "hello_there" ItIsExample -> "it_is_example" 我使用了此代码,但不起作用: String regex = "([A-Z][a-z]+)"; String replacement = "$1_"; str.replaceAll(regex, replacement); return toLowerCase(str); 我使用了此代码,但不起作用 提示:J

我想将文本中的所有大写字母转换为下划线,下面是一些示例

HelloThere -> "hello_there"
ItIsExample -> "it_is_example"
我使用了此代码,但不起作用:

String regex = "([A-Z][a-z]+)";
String replacement = "$1_";
str.replaceAll(regex, replacement); 
return toLowerCase(str);
我使用了此代码,但不起作用

提示:Java字符串是不可变的

这一行:

  str.replaceAll(regex, replacement); 
不更改
str
。它返回一个新字符串。。。然后你把它扔到地板上

改为这样做:

 return str.replaceAll(regex, replacement).toLowerCase(); 
我使用了此代码,但不起作用

提示:Java字符串是不可变的

这一行:

  str.replaceAll(regex, replacement); 
不更改
str
。它返回一个新字符串。。。然后你把它扔到地板上

改为这样做:

 return str.replaceAll(regex, replacement).toLowerCase(); 

您还可以使用以下选项:

"HelloThere".replaceAll("(.)(\\p{Lu})", "$1_$2").toLowerCase();

您还可以使用以下选项:

"HelloThere".replaceAll("(.)(\\p{Lu})", "$1_$2").toLowerCase();

不应该
hellother
变成
hello\u那里
?不应该
hellother
变成
hello\u那里
?\p{Lu}用于捕获Unicode标准定义的任何大写字母。这是一个更通用的解决方案。在这里找到\p{Lu},谢谢:)是的,这是一个更通用的解决方案。\p{Lu}用于捕获Unicode标准定义的任何大写字母。这是一个更一般的解决方案。在这里找到\p{Lu},谢谢:)是的,这是一个更一般的解决方案。