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 № 1Adicione 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:
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]);
}