字符串拆分并存储在2个不同的列表中

时间:2015-06-08 07:57:57

标签: java string split

我有一个包含此[1-123,2-456,6-654]数据的列表 我需要通过分隔符“ - ”拆分并将第一部分存储在一个List中,将第二部分存储在其他列表中。

List clientIds = new ArrayList();
List chipIds = new ArrayList();
String delimiter = "-";
for(int i=0;i<selectedClientChips.size();i++){

// How to add them in 2 lists???

}

6 个答案:

答案 0 :(得分:5)

for循环中添加这三行:

 String[] splitList = selectedClientChips.get(i).toString().split(delimiter);
 clientIds.add(splitList[0]);
 chipIds.add(splitList[1]);

答案 1 :(得分:1)

这应该有用......

for(int i=0;i<selectedClientChips.size();i++){
    // get element and split it
    String element[] = selectedClientChips.get(i).split(delimiter);

    // add each part to one list
    clientIds.add(element[0]);
    chipIds.add(element[1]);
}

答案 2 :(得分:1)

Splitadd第一个列表中的第一个元素和下一个列表中的下一个元素。

String[] strArr;
for (int i = 0; i < selectedClientChips.size(); i++) {
    strArr = selectedClientChips.get(i).split(delimiter);
    clientIds.add(strArr[0]);
    chipIds.add(strArr[1]);
}

答案 3 :(得分:1)

你可以试试这个:

for(int i=0;i<selectedClientChips.size();i++){
String []splitArray=selectedClientChips.get(i).split(delimiter);
clientIds.add(splitArray[0]);
chipIds.add(splitArray[1]);
}

答案 4 :(得分:1)

要拆分字符串'N-NNNN',您可以使用String类的.split方法。

请参阅Java Doc:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

split方法返回带有拆分值的字符串数组。

对于字符串"1-123".split("-");会返回{"1", "123"};

改进示例:

import java.util.*;
import java.lang.*;
import java.io.*;

public class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String selectedClientChips[] = {"1-123", "2-456", "6-654"};
        List clientIds = new ArrayList();
        List chipIds = new ArrayList();
        String delimiter = "-";
        for(int i=0;i<selectedClientChips.length;i++){
            String split[] = selectedClientChips[i].split(delimiter);
            if (split.length == 2) {
                clientIds.add(split[0]);
                chipIds.add(split[1]);
            }
        }
        System.out.println("CliendIDs: " + clientIds.toString());
        System.out.println("ChipIDs: " + chipIds.toString());
    }
}

输出:

CliendIDs: [1, 2, 6]
ChipIDs: [123, 456, 654]

工作示例:

http://ideone.com/w2IvNm

答案 5 :(得分:0)

这应该可以满足您的需求:

    List<String> selectedClientChips = new ArrayList();
    selectedClientChips.add("1-123");
    selectedClientChips.add("2-456");

    List clientIds = new ArrayList();
    List chipIds = new ArrayList();

    for(int i=0;i<selectedClientChips.size();i++){
        String[] r = selectedClientChips.get(i).split("-");
        clientIds.add(r[0]);

        chipIds .add(r[1]);
    }