将每个单词的单词和Java中的最后一个单词分开

时间:2018-03-11 15:46:27

标签: java string

这是我的输入

  

你好世界ja123va456789

我希望得到像这样的输出

  

hello world ja 123 va 456789

这是我的代码

public String extractDigits(String src) {
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < src.length(); i++) {
        char c = src.charAt(i);
        if (Character.isDigit(c)) {
            builder.append(c);
        }
    }
    return builder.toString();
}

public static void main(String[] args) {

    String word = "hello world ja123va456789";
    String x = word.trim();
    String[] wordsplit = x.split("\\s+");
    String output = "";
    Coba3 coba = new Coba3();
    for (String word1 : wordsplit) {

        coba.extractDigits(word1);
        output += word1+" ";
    }
    System.out.println(output);
}

我的输出仍然是“hello world ja123va456789”,我的代码部分必须在哪里修复?

1 个答案:

答案 0 :(得分:0)

您可以在空格上或在将字母与数字分开的外观上拆分输入,然后将这些部分连接在一起:

String input = "hello world ja123va456789";
String[] parts = input.split("(\\s+|(?:(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])))");
StringBuilder output = new StringBuilder("");
for (int i=0; i < parts.length; ++i) {
    if (i > 0) {
        output.append(" ");
    }
    output.append(parts[i]);
}

System.out.println(output);

hello world ja 123 va 456789

Demo