求一split用法
想提取“2008/11/01 16:12:27.718 -0800”中的718这个位置的内容(这个位置可能为空或者是3位),求一高手给个java split用法。谢谢
------解决方案--------------------必须用split?
那如果这个位置为空,前面那个点还有没有?
------解决方案--------------------个人觉得用正则更好使一些。。。
我要是会就给你写了。。。等高手吧。。。
------解决方案--------------------这个完全是可以用date来解析的啊
DateFormat df=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SS Z");
Date date=df.parse( "2008/11/01 16:12:27.718 -0800");
Calendar c=Calendar.getInstance();
c.setTime(date);
System.out.println(c.get(Calendar.MILLISECOND));
如果非要用split的话这样
String miliSeconds = "2008/11/01 16:12:27.718 -0800".split("\\.")[1]
.split("\\s")[0];
System.out.println(miliSeconds);
------解决方案--------------------
正解
但是转换成Date类型处理不了楼主所描述的为空的情况。
------解决方案--------------------
public static void main(String[] args) {
String str="2008/11/01 16:12:27.718 -0800";
String[] s=str.split(" ");
String[] des=s[1].split("\\.");
System.out.println(des[1]);
}
------解决方案--------------------http://shukuiyan.iteye.com/blog/1058672参看java中split的使用
------解决方案--------------------
根据 . 把字符串s分成字符串数组str,但是由于 . 在正则中有特殊含义,所以需要转义,即 \. 又由于 \ 在java里的特殊作用,又需要转义 所以最后变成 \\.
再根据 \s 把str[1]分成字符串数组sstr,\s匹配一个空白字符,同理需要转义 即 \\s
去sstr[0]即楼主所求