是否有任何库API或正则表达式模式在一些分隔符上拆分String并自动修剪每个元素的前导和尾随空格而不必循环元素?
例如,在分割" A B # C#D# E # "上#期望的输出是[A B,C,D,E]
我得到的最接近的是str.split("\\s*#\\s*")给出的[ A B, C, D, E]
Gar*_*all 45
在拆分之前修剪它
" A B # C#D# E # ".trim().split("\\s*#\\s*")
Run Code Online (Sandbox Code Playgroud)
逗号后的空格[ A B, C, D, E]就是Arrays.toString打印方式
Ste*_*e J 11
番石榴救援!使用CharMatcher和Splitter.我只使用Joiner将Iterable拼接在一起,清楚地表明迭代只有字母,没有填充,无关的空格或哈希符号.
package main;
import com.google.common.base.CharMatcher;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
public class TestMain {
static Splitter split = Splitter.on(CharMatcher.anyOf(" #")).trimResults()
.omitEmptyStrings();
static Joiner join = Joiner.on(", ");
public static void main(String[] args) {
final String test = " A B # C#D# E # ";
System.out.println(join.join(split.split(test)));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
A, B, C, D, E
Run Code Online (Sandbox Code Playgroud)
非常适合那些因正则表达而头疼的人.
| 归档时间: |
|
| 查看次数: |
61708 次 |
| 最近记录: |