日期:2014-05-20  浏览次数:20679 次

求一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来解析的啊


Java code
?



123456

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.getInstan……

正解
但是转换成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的使用
------解决方案--------------------
引用
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。 
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。 

例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果: 

Regex 结果 
: { "boo", "and", "foo" } 
o { "b", "", ":and:f" } 


参数:
regex - 定界正则表达式 
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的 
抛出: 
PatternSyntaxException - 如果正则表达式的语法无效
从以下版本开始: 
1.4 
另请参见:
Pattern

根据 . 把字符串s分成字符串数组str,但是由于 . 在正则中有特殊含义,所以需要转义,即 \. 又由于 \ 在java里的特殊作用,又需要转义 所以最后变成 \\.
再根据 \s 把str[1]分成字符串数组sstr,\s匹配一个空白字符,同理需要转义 即 \\s
去sstr[0]即楼主所求