我有一个包含此[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???
}
答案 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)
Split
和add
第一个列表中的第一个元素和下一个列表中的下一个元素。
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]
工作示例:
答案 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]);
}