从时间上拆分字符串

时间:2017-11-09 09:19:44

标签: java split

我有时间跟随。

" Time : 06:00:00 AM "

我使用了以下分割方法,split(":")。然后它从字符串中的所有":"分割时间。

我想在第一个":"之后分开时间,然后从那时开始删除"AM"分数。

请允许任何人帮助我使用此代码。

我按如下方式构建了这个简单的示例。我在“:”之后分割数据的努力。当分裂时间出现上述问题时。

import java.util.ArrayList;
import java.util.List;

public class StringBuilderSample {
    public static void main(String []arg) {
        List<Object> dataList = new ArrayList<Object>();
        Object[] dataArr = {
                "Serial no : 10",
                "Supplier ID : 1",
                "Supplier Name : Md40",
                "GRN no : 20555",
                "Bag ID : 10",
                "Weight : 500",
                "Date : 09-10-2017",
                "Time : 16:09 PM",
                "User ID : 204"
        };
        for(int j=0;j<dataArr.length;j++) {
            String arrayData = dataArr[j].toString();
            Object[] fraction = arrayData.split(":");
            if(fraction.length>2) {
                StringBuilder strBuilder = new StringBuilder();
                for(int i=1; i<fraction.length;i++) {
                    strBuilder.append(fraction[i]);
                }
                String newString = strBuilder.toString();
                dataList.add(newString);
            }else {
                dataList.add(fraction[1]);
            }
        }
        for(Object data : dataList) {
            System.out.println(data);
        }


    }

}

2 个答案:

答案 0 :(得分:0)

您可以使用split方法的limit参数:

Object[] fraction = arrayData.split(":", 2);

这将给出:

fraction[0] --> Time 
fraction[1] --> 16:09 PM

答案 1 :(得分:0)

如果您的问题是将所有对象的字符串“Serial no:10”拆分为“10”并且时间为“:”并且导致您遇到麻烦,那么您可以尝试下面的代码

    for(int j=0;j<dataArr.length;j++) {
        String arrayData = dataArr[j].toString();
        String fraction = arrayData.substring(arrayData.indexOf(":") + 1);
        dataList.add(fraction);
    }
    for(Object data : dataList) {
        System.out.println(data);
    }