/ / String dividida e armazenada em 2 lista diferente [fechada] - java, string, split

Dividir e armazenar em 2 listas diferentes [closed] - java, string, split

Eu tenho uma lista que contém dados como este [1-123,2-456,6-654].
Preciso dividir pelo delimitador "-" e armazenar a primeira parte em uma lista e a segunda parte em outra lista.

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

}

Respostas:

5 para resposta № 1

Adicione essas três linhas no for loop:

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

1 para resposta № 2

Split e add primeiro elemento na primeira lista e próximo elemento na próxima lista.

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 para resposta № 3

Você pode tentar isto:

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

1 para resposta № 4

Isso deve funcionar ...

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 para resposta № 5

Para dividir a String "N-NNNN", você pode usar o método .split da classe String.

Veja o Java Doc:

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

O método de divisão retorna uma matriz de string com os valores divididos.

Para a corda "1-123" a .split("-"); retorna {"1", "123"};

Exemplo aprimorado:

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

Saída:

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

Exemplo de trabalho:

http://ideone.com/w2IvNm


0 para a resposta № 6

Isso deve funcionar para as suas necessidades:

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