/ / Рядок розділити та зберегти у двох різних списках [закритий] - java, string, split

Рядок розділений і зберігається в 2 різних списках [closed] - java, string, split

У мене є список, в якому є такі дані [1-123,2-456,6-654].
Мені потрібно розділити роздільник на "-" і зберегти першу частину в одному списку, а другу - в іншому.

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???

}

Відповіді:

5 за відповідь № 1

Додайте ці три рядки в for петля:

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

1 для відповіді № 2

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

1 для відповіді № 3

Ви можете спробувати це:

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

1 для відповіді № 4

Це має працювати ...

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

1 для відповіді № 5

Для розділення рядка "N-NNNN" ви можете використовувати метод .split класу String.

Дивіться 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


0 для відповіді № 6

Це має працювати для ваших потреб:

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