正则表达式过滤掉空值的问题

spwwh 2015-12-10 10:35:46

String characters = "需求数量;;-2;-100;-100;100";
Matcher m = Pattern.compile("[^;|:]+").matcher(characters);
ArrayList<String> mArray = new ArrayList <String>();
while(m.find()){
mArray.add(m.group());
}


实际得到的结果是
需求数量,-2,-100,-100,100

我想得到的结果是,也就是第二个值是空值,不应该被去掉,应该怎么做?
需求数量,,-2,-100,-100,100

用characters.split("[;|:]",-1)能得到要的结果,但这里必须要用Pattern,因为后续还有更复杂的写法。
...全文
591 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43759376 2019-02-18
  • 打赏
  • 举报
回复
引用 2 楼 spwwh 的回复:
用其他方法解决了


哥 我下载你的地磅接口 但是不会用 你能不能给我讲讲 我目前运行不了 能联系一下你么
weixin_43759376 2019-02-17
  • 打赏
  • 举报
回复
哥 我下载你的地磅接口 但是不会用 你能不能给我讲讲 我目前运行不了
spwwh 2015-12-14
  • 打赏
  • 举报
回复
用其他方法解决了
rickylin86 2015-12-10
  • 打赏
  • 举报
回复
直接这样就可以解决了.

public class Test{
	public static void main(String[] args){
		String content = "需求数量;;-2;-100;-100;100";
		for(String str : content.split(";")){
			System.out.println("'" + str + "'");
		}
	}
}
另外你的正则表达式:

Pattern.compile("[^;|:]+")
你用的是+ 所以也就是必须存在一个或者一个以上.对于完全没有肯定不符合要求

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧