简体   繁体   English

如何在java中拆分字符串

[英]how split string in java

i have project in android, and i need split string, which is actually date here is the String that i'm going to split: 我在android中有项目,我需要拆分字符串,实际上这里的日期是我要拆分的字符串:

String datetime = "01/03/2013 09:00";

and this is how i call them: 这就是我称之为:

int year = splitDateTime(dateTime)[0];
public int[] splitDateTime(String datetime){
        String date_time = datetime;
        String delimiter = "//:";

        String[] sParts;
        int[] intParts;

        sParts = date_time.split(delimiter);
        intParts = new int[sParts.length];

        for(int i =0; i < sParts.length ; i++)
            intParts[i] = Integer.parseInt(sParts[i]);

        return intParts;
    }

but it keeps giving me an error, so i would be happy if you help me out guys. 但它一直给我一个错误,所以如果你帮助我,我会很高兴。 cheers 干杯

I bet you mean something like: 我打赌你的意思是:

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));

OUTPUT: OUTPUT:

[1, 3, 2013, 9, 0]

I think you should use Calendar 我认为你应该使用日历

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);

您可以使用正则表达式,使用类似^(\\d+)/(\\d+)/(\\d+) (\\d+):(\\d) ,您可以获取每个捕获的组。

I think StringTokenizer based solution will be the fastest 我认为基于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")));
}

output 产量

[1, 3, 2013, 9, 0]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM