求一split用法

隐藏起来 2013-01-17 03:30:47
想提取“2008/11/01 16:12:27.718 -0800”中的718这个位置的内容(这个位置可能为空或者是3位),求一高手给个java split用法。谢谢
...全文
199 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
nai598455803 2013-01-17
  • 打赏
  • 举报
回复
只要目的达到就行,而且还简单,只求结果,不在乎过程
隐藏起来 2013-01-17
  • 打赏
  • 举报
回复
引用 13 楼 nai598455803 的回复:
不知subString 可否
当然可以,但是别人说太生硬,不让用。。。。
nai598455803 2013-01-17
  • 打赏
  • 举报
回复
不知subString 可否
隐藏起来 2013-01-17
  • 打赏
  • 举报
回复
引用 10 楼 suciver 的回复:
split(String regexp)里面的是正则表达式语法先按.分割由于.在正则中代表任意字符所以转义成\.又因为\是特殊字符所以写成\\.这样分割之后就变成了字符串数组了 ["“2008/11/01 16:12:27","718 -0800"] 1位置的就是"718 -0800" 再根据空格分割在来此split("\\s");\\s正则表达式中表示空白字符。这里只有一个空白字符如果多个……
结贴结早了。你的讲解非常详细,也非常有用,谢谢!
nai598455803 2013-01-17
  • 打赏
  • 举报
回复
特殊字符.需要转义
suciver 2013-01-17
  • 打赏
  • 举报
回复
split(String regexp)里面的是正则表达式语法先按.分割由于.在正则中代表任意字符所以转义成\.又因为\是特殊字符所以写成\\.这样分割之后就变成了字符串数组了 ["“2008/11/01 16:12:27","718 -0800"] 1位置的就是"718 -0800" 再根据空格分割在来此split("\\s");\\s正则表达式中表示空白字符。这里只有一个空白字符如果多个的话可以用\\s+
abc41106 2013-01-17
  • 打赏
  • 举报
回复
引用
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]即楼主所求
小猴168 2013-01-17
  • 打赏
  • 举报
回复
http://shukuiyan.iteye.com/blog/1058672参看java中split的使用
asdfgcjw 2013-01-17
  • 打赏
  • 举报
回复

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]);
		
	}



abc41106 2013-01-17
  • 打赏
  • 举报
回复
引用 4 楼 suciver 的回复:
这个完全是可以用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类型处理不了楼主所描述的为空的情况。
隐藏起来 2013-01-17
  • 打赏
  • 举报
回复
引用 4 楼 suciver 的回复:
这个完全是可以用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……
能解释下你这里这个split后面的那个规则么?
suciver 2013-01-17
  • 打赏
  • 举报
回复
这个完全是可以用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);
隐藏起来 2013-01-17
  • 打赏
  • 举报
回复
引用 楼主 dchua123 的回复:
想提取“2008/11/01 16:12:27.718 -0800”中的718这个位置的内容(这个位置可能为空或者是3位),求一高手给个java split用法。谢谢
点还有,只是那三个数没有。
JPF1024 2013-01-17
  • 打赏
  • 举报
回复
个人觉得用正则更好使一些。。。 我要是会就给你写了。。。等高手吧。。。
abc41106 2013-01-17
  • 打赏
  • 举报
回复
必须用split? 那如果这个位置为空,前面那个点还有没有?

62,615

社区成员

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

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