用Java替换String的第一个字母?

fro*_*die 9 java string

我正在尝试将字符串的第一个字母转换为小写.

value.substring(0,1).toLowerCase() + value.substring(1)
Run Code Online (Sandbox Code Playgroud)

这有效,但还有更好的方法吗?

我可以使用替换函数,但Java的替换不接受索引.您必须传递实际的字符/子字符串.可以这样做:

value.replaceFirst(value.charAt(0), value.charAt(0).toLowerCase())
Run Code Online (Sandbox Code Playgroud)

除了replaceFirst需要2个字符串,所以value.charAt(0)s可能需要替换为value.substring(0,1).

有没有标准的方法来替换字符串的第一个字母?

Max*_*xym 12

我建议你看看Apache的Commons-Lang库.他们有一个班级

StringUtils
Run Code Online (Sandbox Code Playgroud)

这允许你用字符串做很多任务.在你的情况下,只需使用

StringUtils.uncapitalize( value )
Run Code Online (Sandbox Code Playgroud)

在这里阅读关于uncapitalize以及所建议的类的其他功能

补充:我的经验告诉我,Coomon-Lang已经很好地优化了,所以如果想从算法的角度来看想知道哪些更好,你可以看一下Apache的来源.