JAVA怎样快速把字符串里面的数字取出来
例如Stringdate="2015-04-1612:12:12";这个字符串,不是日期,是字符串类型怎样操作最快可以把它变成20150416121212这种格式,求教...
例如String date = "2015-04-16 12:12:12";这个字符串,不是日期,是字符串类型
怎样操作最快可以把它变成20150416121212这种格式,求教 展开
怎样操作最快可以把它变成20150416121212这种格式,求教 展开
4个回答
展开全部
char[] charArray=date.toCharArray();
//这是方法一 获得固定位置上的数字,因为我看你这个数字是在固定位置上的,所以论速度这个是最快的没有判断直接获取
String newDate=charArray[0]+charArray[1]+charArray[2]+charArray[3]+charArray[5]+charArray[6]+charArray[8]+charArray[9];
方法二:
对charArray进行遍历,如果是数字就加到新的字符串的尾巴上。这种需要判断很多次,速度没那么快。
方法三:你可以看看正则表达式的方法。
方法四:逆向思维,如果是"-"或者是" "," : "就过滤掉
我说的都是原理,他们说的都是方法。但是最快的肯定是我的第一个方法。别人的和我的方法二和四类似。
//这是方法一 获得固定位置上的数字,因为我看你这个数字是在固定位置上的,所以论速度这个是最快的没有判断直接获取
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 把 "-" " " ":" 替换为空字符串""
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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());
}
}
}
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());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
new simpleDateFormat("yyyy-MM-dd hh:mm:ss")
simpleDateFormat.parse();转为date类型
new simpleDateFormat("yyyyMMdd hhmmss")转为你要的String类型
simpleDateFormat.parse();转为date类型
new simpleDateFormat("yyyyMMdd hhmmss")转为你要的String类型
追问
真是大神啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询