将目录名称指定为字符串,如下所示:
c:\can\be\anything\...\2013\12\01
或没有像'day'那样:
c:\can\be\anything\...\2011\10
如何轻松地将年,月和日解析为整数:
int iYear;
int iMonth;
int iDay;
非常感谢任何建议!
RH
答案 0 :(得分:4)
基于Java 1.7 API:
String dir1 = "c:\\test1\\2013\\12\\01"; // c:\test1\2013\12\01
String dir2 = "c:\\test1\\2013\\10"; // c:\test1\2013\10
public void getDate(String dir) {
String parts[] = (java.io.File.separatorChar == '\\' ? dir.split("\\\\") : dir.split("/"));
int len = parts.length();
if (len >= 3) {
int iYear, iMonth, iDay;
if (parts[len-2].length() == 4) {
iYear = Integer.parseInt(parts[len-2]);
iMonth = Integer.parseInt(parts[len-1]);
iDay = 0;
} else {
iYear = Integer.parseInt(parts[len-3]);
iMonth = Integer.parseInt(parts[len-2]);
iDay = Integer.parseInt(parts[len-1]);
}
}
}
注意:
\
)分隔,因此您必须使用字符串的转义字符(\\
),以及正则表达式的转义字符(\\\\
)。\
,* nix中的/
。答案 1 :(得分:1)
我将字符串拆分为'\',取最后三位,并指定值。
答案 2 :(得分:1)
import java.lang.Number;
import java.lang.String;
import java.lang.StringBuffer;
import java.util.Iterator;
public class Test{
private static String path = "c:\\can\\be\\anything\\...\\2013\\12\\01";
public static void main(String[] args){
String[] tmp = path.split("\\\\");
if(tmp.length > 3){
String day = tmp[tmp.length-1];
String month = tmp[tmp.length-2];
String year = tmp[tmp.length-3];
System.out.println(day+" "+month+" "+year);
}
}
}
答案 3 :(得分:1)
试试这个。
公共课堂考试{public static void main(String [] args){ // TODO自动生成的方法存根>
String test = new String("c:\\can\\be\\anything\\test\\2013\\12\\01"); System.out.println("test "+test); String[] result = test.split("\\\\"); for(String s : result){ System.out.println(">"+s+"<"); }
}
}
答案 4 :(得分:0)
最简单的方法可能就是使用split(&#34; \&#34;)然后将字符串作为数组返回并抛出前n个元素,直到找到年份的元素。
String[] elements = requestUrl.split("\");
int yearIndex;
int monthIndex = yearIndex + 1;
int dayIndex = monthIndex + 1;
for (int i = 0; i < elements.length; i++){
int value = Integer.parseInt(element);
if (value > 1900){
yearOffset = i;
break;
}
}
int year = Integer.parseInt(elements[yearIndex]);
int month = Integer.parseInt(elements[monthIndex]);
int day = Integer.parseInt(elements[dayIndex]);
如果你知道一年之前会有多少元素,你就不必扫描。