【发布时间】:2015-08-15 16:51:05
【问题描述】:
我有String s = http://kqxs.net.vn/xo-so-ngay/an-giang-xsag-23-4-2015/
(使用Java android)如何将日期字符串23-4-2015从中拆分为两个子字符串:
【问题讨论】:
我有String s = http://kqxs.net.vn/xo-so-ngay/an-giang-xsag-23-4-2015/
(使用Java android)如何将日期字符串23-4-2015从中拆分为两个子字符串:
【问题讨论】:
用正则表达式试试这个,
String str = "http://kqxs.net.vn/xo-so-ngay/an-giang-xsag-23-4-2015/";
String regexStr = "\\d{2}-\\d{1,2}-\\d{4}";
Pattern pattern = Pattern.compile(regexStr);
Matcher matcher = pattern.matcher(str);
int startIndex=-1;
// Check all occurrences
while (matcher.find()) {
startIndex = matcher.start();
}
if(startIndex>0){
String firstPart = str.substring(0,startIndex-1);
String secondPart = str.substring(startIndex);
System.out.println("First Part "+firstPart);
System.out.println("Second Part "+secondPart);
}else{
System.out.println("Match Not Found!");
}
输出:- 第一部分http://kqxs.net.vn/xo-so-ngay/an-giang-xsag 第二部分 23-4-2015/
【讨论】:
我希望日期永远是最后一个。因此,您实际上可以执行 Java 子字符串,从末尾取出最后 11 个字符。因为有“/”。
您实际上可以通过正则表达式仅获得一个数字。但是如果 URL 中也有数字是不可能的。
【讨论】:
试试这个代码从字符串中获取日期。
String str="fgdfg12°59'50\" Nfr | gdfg: 80°15'25\" Efgd";
String[] spitStr= str.split("\\|");
String numberOne= spitStr[0].replaceAll("[^0-9]", "");
String numberSecond= spitStr[1].replaceAll("[^0-9]", "");
试试这个另一个代码
String str=" abc d 1234567890pqr 54897";
Pattern pattern = Pattern.compile("\\w+([0-9]+)\\w+([0-9]+)");
Matcher matcher = pattern.matcher(str);
for(int i = 0 ; i < matcher.groupCount(); i++) {
matcher.find();
System.out.println(matcher.group());
}
【讨论】:
使用substring 方法
String str = "http://kqxs.net.vn/xo-so-ngay/an-giang-xsag-23-4-2015/";
url = str.substring(0, 43);
date = str.substring(44, 53);
【讨论】: