JAVA怎样快速把字符串里面的数字取出来

例如Stringdate="2015-04-1612:12:12";这个字符串,不是日期,是字符串类型怎样操作最快可以把它变成20150416121212这种格式,求教... 例如String date = "2015-04-16 12:12:12";这个字符串,不是日期,是字符串类型
怎样操作最快可以把它变成20150416121212这种格式,求教
展开
 我来答
百度网友3fe8001
推荐于2016-02-27 · TA获得超过376个赞
知道小有建树答主
回答量:123
采纳率:100%
帮助的人:75.7万
展开全部
char[] charArray=date.toCharArray();

//这是方法一 获得固定位置上的数字,因为我看你这个数字是在固定位置上的,所以论速度这个是最快的没有判断直接获取
String newDate=charArray[0]+charArray[1]+charArray[2]+charArray[3]+charArray[5]+charArray[6]+charArray[8]+charArray[9];

方法二:
对charArray进行遍历,如果是数字就加到新的字符串的尾巴上。这种需要判断很多次,速度没那么快。

方法三:你可以看看正则表达式的方法。
方法四:逆向思维,如果是"-"或者是" "," : "就过滤掉
我说的都是原理,他们说的都是方法。但是最快的肯定是我的第一个方法。别人的和我的方法二和四类似。
追问
如果用正则,该怎么写?我没写过正则,求指教
追答
1、Java中过滤出字母、数字和中文的正则表达式
(1)过滤出字母的正则表达式
[^(A-Za-z)]

(2)过滤出数字的正则表达式
[^(0-9)]

(3)过滤出中文的正则表达式

[^(\\u4e00-\\u9fa5)]

(4)过滤出字母、数字和中文的正则表达式
[^(a-zA-Z0-9\\u4e00-\\u9fa5)]

public static String filterNumber(String number)
{
number = number.replaceAll("[^(0-9)]", "");
return number;
}
建议你可以自己看看正则,如果做匹配还是很有用的。
//那个^符号表示取反 就是非的意思。
匿名用户
2015-04-17
展开全部
replace 把 "-" " " ":" 替换为空字符串""
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金博瑞晟
2015-04-17 · TA获得超过2万个赞
知道大有可为答主
回答量:1509
采纳率:78%
帮助的人:371万
展开全部
import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
* <pre>
*
* </pre>
* @since JDK 1.4
* @version 1.0
*
*/
public class Main {
public static void main(String[] args) {
String s = "阿里145山1的61歌17哦13我7呢819如果";
Pattern p = Pattern.compile("[0-9]");
Matcher m = p.matcher(s);

while (m.find()) {
System.out.println(m.group());
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
helicator
2015-04-17 · TA获得超过821个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:492万
展开全部
new simpleDateFormat("yyyy-MM-dd hh:mm:ss")
simpleDateFormat.parse();转为date类型
new simpleDateFormat("yyyyMMdd hhmmss")转为你要的String类型
追问
真是大神啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式