关于string.split("\\D"),该怎么理解?

duskwaitor 2008-01-24 01:51:36
class GetNumber{

public static void main(String[] args){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

String str = sdf.format(new Date());
System.out.println(str);// 2008/01/24 13:23:50

String[] result = str.split("\\D");
for(int i = 0;i<result.length;i++){
System.out.println(result[i]);
/*2008
*01
*24
*13
*23
*50
*/
}
}
}

正则表达式\D是匹配0`9之间的任意一个数字,但是str.split("\\D")为什么会返回这么样一个结果呢?
...全文
854 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
duskwaitor 2008-01-24
  • 打赏
  • 举报
回复
还要多谢楼上哥们热心解答
老紫竹 2008-01-24
  • 打赏
  • 举报
回复
\\d 小写的才是数字
\\D 表示所有非数字字符

我认为你的\\D是你想要的结果
malligator 2008-01-24
  • 打赏
  • 举报
回复
\\D表示所有非数字字符
从所有非数字字符把2008/01/24 13:23:50劈开(split)就得到了打印的结果(数组)
duskwaitor 2008-01-24
  • 打赏
  • 举报
回复
不劳各位辛苦了,刚看到“在表达式 "\s","\d","\w","\b" 表示特殊意义的同时,对应的大写字母表示相反的意义”,原来如此,我的帖子有问题
最后一行是\d,不是\D,可以结贴了
favorite7w 2008-01-24
  • 打赏
  • 举报
回复
你期望的结果是什么?

62,631

社区成员

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

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