【发布时间】:2012-04-13 20:06:13
【问题描述】:
如何使用 String.split() 拆分字符串,而不使用尾随/前导空格或空值?
假设我有 " ol-ga@assf-rrt.ru ; sdf.an@dfgdfg.com; sdfsdf@fdfd.erff, privet@vvv.fff " 这样的字符串。
我曾经通过调用String.split("[;, ]+") 来拆分它,但缺点是你会得到需要在额外循环中忽略的空数组元素。
我还尝试了String.split("\\s*[;,]+\\s*"),它不提供空元素,但在第一封电子邮件中留下前导空格,在最后一封电子邮件中留下尾随空格,这样生成的数组看起来像因为这些电子邮件旁边没有逗号或分号:
[0] = {java.lang.String@97}" ol-ga@assf-rrt.ru"
[1] = {java.lang.String@98}"sdf.an@dfgdfg.com"
[2] = {java.lang.String@99}"sdfsdf@fdfd.erff"
[3] = {java.lang.String@100}"privet@vvv.fff "
是否可以仅使用正则表达式和拆分(不使用额外调用 String.trim()) 获得“干净”电子邮件数组?
谢谢!
【问题讨论】:
-
为什么不在将字符串添加到数组之前执行 String.trim() ?
-
因为我没有向数组中添加字符串,所以
String.split会。