在单个空格处拆分字符串

Rya*_*man 4 java regex string split character

我希望在每个空格中将一个字符串拆分为一个字符串数组.

例如:

This_sentence_gets__split. (下划线代表空格)

"This"

"sentence"

"gets"

" " (注意双空格留作一个空格)

"split."

我假设我可以这样做,String.split(String regex)但我对正则表达式不是很好,我不知道如何实现这一点.

编辑:

第一个之后的任何空格也应该分成子串.例如: Split___this.变成"Split " " " " "this."

Psh*_*emo 7

我认为这可能是你正在寻找的东西(你可以通过\\s类,如标签,新行等所有空格来改进它)

String data = "This_sentence__gets___split".replace('_', ' ');
// System.out.println(data);
String arr[] = data.split("(?<! ) |(?<= {2})");
for (String s : arr)
    System.out.println("\"" + s + "\"");
Run Code Online (Sandbox Code Playgroud)

输出:

"This"
"sentence"
" "
"gets"
" "
" "
"split."
Run Code Online (Sandbox Code Playgroud)

说明:

  • "(?<! ) " 将仅分割在之前没有空格的空格上
  • "(?<= {2})" 会分裂到前面有两个空格的地方.