Java正则表达式,用字符替换由数字包围的所有空格

Java正则表达式,用字符替换由数字包围的所有空格,java,regex,Java,Regex,我想用-替换数字或数字包围的空格 因此,如果我的字符串是我是Bob 12,则应将其转换为我是Bob 12-12 请使用Javastr=str.replaceAll((?非regexp解决方案)建议一些可能的答案: str = str.replaceAll("(?<=\\d)\\s(?=\\d)", "-"); String in = "I am Bob 12 12"; int last = in.length()-1; StringBuilder resultBuilder = new

我想用
-
替换数字或数字包围的空格

因此,如果我的字符串是
我是Bob 12
,则应将其转换为
我是Bob 12-12

请使用
Java

str=str.replaceAll((?非regexp解决方案)建议一些可能的答案:

str = str.replaceAll("(?<=\\d)\\s(?=\\d)", "-");
String in = "I am Bob 12 12";
int last = in.length()-1;
StringBuilder resultBuilder = new StringBuilder();
resultBuilder.append(in.charAt(0));  // assumes, the String has at least one char

for (int i = 1; i < last-1; i++) {
  if (in.charAt(i) == ' ' && 
        Character.isDigit(in.charAt(i-1)) && 
        Character.isDigit(in.charAt(i+1))) {
     resultBuilder.append('-');
  } else {
     resultBuilder.append(in.charAt(i));
  }
}
resultBuilder.append(in.charAt(last));
// System.out.println(resultBuilder);
String in=“我是鲍勃12”;
int last=in.length()-1;
StringBuilder resultBuilder=新建StringBuilder();
resultBuilder.append(in.charAt(0));//假设字符串至少有一个字符
for(int i=1;i
当一个正则表达式解决方案非常合适、易于阅读且只需一行代码时,你究竟为什么想要一个需要十几行代码且可读性不强的“非正则表达式”解决方案?Boo!;)可读性值得(单独)就我个人而言,我讨厌查看未记录的regexp并试图找出作者到底想告诉我们什么,以及为什么它不适用于我的示例字符串:D