如何在java中将字符串拆分为int数组

sam*_*m_k -2 java android

这里我有这种类型的字符串,我想将此字符串拆分为每个元素,并希望为数字创建一个arraylist(整数)或一个整数数组.

我有这样的字符串作为一个例子: 123|00,124|01,125|00,126|01

我想先在一个包含的列表中分隔所有元素

123|00
124|01
125|00
126|01
Run Code Online (Sandbox Code Playgroud)

之后我想制作一个只有的整数数组列表或整数数组

123
124
125
126
Run Code Online (Sandbox Code Playgroud)

请任何人都可以建议我怎么做

谢谢

码:

            List<Integer> numberList = new ArrayList<Integer>();
        HashMap<Integer, Integer> statusMap = new HashMap<Integer, Integer>();
        for (String tripnumber : tripNumbers) {

            int number = Integer.parseInt(tripnumber.split("[|]")[0]);
            Logger.d(TAG, "Trip number in Status Message = "+number);

            int flag = Integer.parseInt(tripnumber.split("[|]")[1]);
            Logger.d(TAG, "TM flag = "+flag);

            if (number > 0) {
                statusMap.put(number, flag);
                numberList.add(number);
            }
        }
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 7

String str = "123|00,124|01,125|00,126|01";

// Split on `|` or `,` and then take every alternate element.
String[] tokens = str.split("[|,]");

List<Integer> intList = new ArrayList<Integer>();    
for (int i = 0; i < tokens.length; i = i + 2) {
    intList.add(Integer.parseInt(tokens[i]));
}
Run Code Online (Sandbox Code Playgroud)

更新: -

如果你用|和分隔的值不一致,,那么你需要分别拆分它们: -

String str = "123|00,125|,126|01,|,";
String[] tokens = str.split(",");
Map<Integer, String> flagMap = new HashMap<Integer, String>();

    for (String token: tokens) {
        String[] arr = token.split("[|]");

        if (arr.length == 0) {
            continue;
        }
        if (arr[0].length() > 1) {
            if (arr.length == 2) {
                flagMap.put(Integer.parseInt(arr[0]), arr[1]);
            } else {
                flagMap.put(Integer.parseInt(arr[0]), "");
            }
        }
    }

    System.out.println(flagMap);
Run Code Online (Sandbox Code Playgroud)

输出: -

{126=01, 125=, 123=00}
Run Code Online (Sandbox Code Playgroud)