如何在java中拆分字符串
我有一个android项目,我需要拆分字符串,它实际上是日期,这里是我要拆分的字符串:如何在java中拆分字符串,java,android,date,calendar,alarmmanager,Java,Android,Date,Calendar,Alarmmanager,我有一个android项目,我需要拆分字符串,它实际上是日期,这里是我要拆分的字符串: String datetime = "01/03/2013 09:00"; 我这样称呼他们: int year = splitDateTime(dateTime)[0]; public int[]splitDateTime(字符串datetime){ 字符串日期\时间=日期时间; 字符串分隔符=“/:”; 弦[]翼子板; int[]int部分; sParts=日期和时间分割(分隔符); intParts=
String datetime = "01/03/2013 09:00";
我这样称呼他们:
int year = splitDateTime(dateTime)[0];
public int[]splitDateTime(字符串datetime){
字符串日期\时间=日期时间;
字符串分隔符=“/:”;
弦[]翼子板;
int[]int部分;
sParts=日期和时间分割(分隔符);
intParts=新的int[sParts.length];
for(int i=0;i
但它总是给我一个错误,所以如果你们能帮我,我会很高兴的。
干杯我打赌你的意思是:
String datetime = "01/03/2013 09:00";
String[] sParts = datetime.split("[/:\\s+]");
int[] iParts = new int[sParts.length];
for(int i = 0; i < sParts.length; i++)
iParts[i] = Integer.parseInt(sParts[i]);
System.out.println(Arrays.toString(iParts));
我认为你应该使用
您可以使用正则表达式,使用类似于
^(\d+)/(\d+)/(\d+)/(\d+)(\d)的东西,您可以获得每个捕获的组。我认为基于StringTokenizer的解决方案将是最快的
public static int[] splitDateTime(String dateTime) {
int[] intParts = new int[5];
StringTokenizer t = new StringTokenizer(dateTime, "/ :");
for (int i = 0; t.hasMoreTokens(); i++) {
intParts[i] = Integer.parseInt(t.nextToken());
}
return intParts;
}
public static void main(final String[] args) throws IOException {
System.out.println(Arrays.toString(splitDateTime("01/03/2013 09:00")));
}
输出
[1, 3, 2013, 9, 0]
我正在使用DateFormat将字符串解析为日期,并从中开始。有更好的方法从日期中获取日期、月份、年份和其他元素,而不是拆分日期。如果dateformat发生更改怎么办?您的删除器(请正确拼写您的代码;)永远不会出现在字符串中。我需要这样输出1 3 2013 9 0然后您只需将“分隔符”更改为“[/:\\s+]”,并确保将正确的变量名传递给函数,我应该将其转换为什么,因为你递给我的这个新日历和上面的一样。我使用它,但出于某种原因,我不知道我什么时候得到月份,它是给2而不是3,我不知道它有什么问题。通常android日历月份从0开始,一月就是这样,所以你必须添加一个以获得正确的值Java日历月从索引0开始,所以你总是需要添加1
String dateTime = "01/03/2013 09:00";
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date d = f.parse(dateTime);
Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.get(Calendar.YEAR);
public static int[] splitDateTime(String dateTime) {
int[] intParts = new int[5];
StringTokenizer t = new StringTokenizer(dateTime, "/ :");
for (int i = 0; t.hasMoreTokens(); i++) {
intParts[i] = Integer.parseInt(t.nextToken());
}
return intParts;
}
public static void main(final String[] args) throws IOException {
System.out.println(Arrays.toString(splitDateTime("01/03/2013 09:00")));
}
[1, 3, 2013, 9, 0]