Java分割字符串?

Java分割字符串?,第1张

Java分割字符串

您不必

split
为此进行-transform-join;
replaceAll
一步就能做到。

    String text = "Skriv in en normal text:";    text = text.replaceAll("(\s*)(\w)(\w+)", "");    System.out.println(text);    // prints "krivS ni ne ormaln extt:"

正则表达式基本上分为3组:

1 : (s*) : any optional preceding whitespace2 : (w)  : the head portion of each "word"3 : (w+) : any tail portion of each "word"

那么,作为替换字符串使它明显和清晰,切换

2
3
周围。


因此,应该清楚的是,

replaceAll
使用捕获组是解决此问题的最佳方法,也是最易读的解决方案,但是该正则表达式取决于问题规范。请注意,例如,上述正则表达式将转换
text:
extt:
(即,将结肠保留在原处)。

以下变体在空白处分割

s
,并对非空白字符序列的头/尾重新排序
S
。这应该与您当前的
split(" ")
-transform-
join解决方案相同:

    String text = "bob: !@#$ +-";    text = text.replaceAll("(\s*)(\S)(\S+)", "");    System.out.println(text);    // prints "ob:b @#$! -+"

这种变化可以切换

w+
由单词边界包围的任何单词字符序列
b
。如果这是您的需要,那么这是该工作最简单,最易读的解决方案。

    String text = "abc:def!ghi,jkl mno";    text = text.replaceAll("\b(\w)(\w+)\b", "");    System.out.println(text);    // prints "bca:efd!hig,klj nom"
也可以看看
  • Matcher.replaceAll
  • regular-expressions.info/分组和反向引用


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5094672.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-16
下一篇2022-11-16

发表评论

登录后才能评论

评论列表(0条)

    保存