我想更改使用下划线作为字每一个词,没有下划线,但以一个大写Java全部替换:如何在下划线后改变每个字母?
例子:new_york - >纽约
到目前为止我的解决办法是写的每一封信一条线,这是不非常高效:
mySolution = mySolution.replaceAll("_a", "A");
编辑:这个问题是关于在一行中使用ReplaceAll,因此与其他问题无关。我可以管理编写一个“长”程序,但我想大多数用户会很乐意为这个问题得到实际的答案。
我想更改使用下划线作为字每一个词,没有下划线,但以一个大写Java全部替换:如何在下划线后改变每个字母?
例子:new_york - >纽约
到目前为止我的解决办法是写的每一封信一条线,这是不非常高效:
mySolution = mySolution.replaceAll("_a", "A");
编辑:这个问题是关于在一行中使用ReplaceAll,因此与其他问题无关。我可以管理编写一个“长”程序,但我想大多数用户会很乐意为这个问题得到实际的答案。
public class HelloWorld {
public static void main(String[] args) {
System.out.println(convert("Hello W_o_rld_"));
}
static String convert(String s) {
StringBuilder sc = new StringBuilder();
for (int i = 0; i < s.length() - 1; i++) { //to avoid _ at last index
if (s.charAt(i) == '_') {
sc.append((Character.toUpperCase(s.charAt(i + 1))));
i++;
} else {
sc.append(s.charAt(i));
}
}
return sc.toString();
}
}
迭代通过字符串的字符和修改下一个字符后_
见https://stackoverflow.com/questions/3618733。 –
@WiktorStribiżew实际上是重复的,目标问题提供适用的本地和第三方解决方案。 – Mena
你只需要在'replaceAll()'中使用正则表达式,比如'mySolution.replaceAll(“_([a-zA-Z] {1})”,“$ 1”);'。 –