栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java分割字符串?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java分割字符串?

您不必

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

    String text = "Skriv in en normal text:";    text = text.replaceAll("(\s*)(\w)(\w+)", "$1$3$2");    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+)", "$1$3$2");    System.out.println(text);    // prints "ob:b @#$! -+"

这种变化可以切换

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

    String text = "abc:def!ghi,jkl mno";    text = text.replaceAll("\b(\w)(\w+)\b", "$2$1");    System.out.println(text);    // prints "bca:efd!hig,klj nom"

也可以看看

  • Matcher.replaceAll
  • regular-expressions.info/分组和反向引用


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号