如何格式化长字符串以在每个数字后添加空格

时间:2017-07-23 12:28:26

标签: java

我有这个长串 “Ab1ac2axd3nxn70-00-0-0” 对于我的生活,我无法弄清楚如何将java中的字符串分开看起来像这样。 “Ab1 ac2 axd3 nxn7 0-0 0-0-0” 我想我需要使用分隔符,但我不知道所需格式的代码,也不知道如何正确编写它。

可能有助于知道零只会以“0-0”或“0-0-0”的形式出现,如果附加到字母上它只会像这样ab30-0现在我不想要在破折号和零之间放置空格但是如果发生“0-00-0-0”我希望它被格式化为“0-0 0-0-0”

1 个答案:

答案 0 :(得分:1)

这将解决您的问题。可能有一个更优雅的解决方案,但这绝对有效:

public class Delimiter {
  public static void main(String[] args) {
    String input = "Ab1ac2axd3nxn70-00-0-0";
    int l = input.length() - 1;
    char[] inputChars = input.toCharArray();
    StringBuilder output = new StringBuilder();

    for (int i = 0; i < l; i++) {
      char c = inputChars[i];
      output.append(c);

      if (Character.isDigit(c) && inputChars[i+1] != '-')
        output.append(' ');
    }

    output.append(inputChars[l]);
    System.out.println(output.toString());
  }
}