bom dia…
estocom problemas em usar o split ?
tenho o seguinte cvs:
1;2;3;;;
3;2;5;2;4;2;6
e sanvando em uma String[]…
o lenth do primeiro da 3… e do segundo le 7 !!!
como faço pra ele ler os ;; (vazios) ???
abs
bom dia…
estocom problemas em usar o split ?
tenho o seguinte cvs:
1;2;3;;;
3;2;5;2;4;2;6
e sanvando em uma String[]…
o lenth do primeiro da 3… e do segundo le 7 !!!
como faço pra ele ler os ;; (vazios) ???
abs
.split(";", 7);
Assim ele fixa que o array de String terá tamanho 7
public class Teste {
public static void main(String args[]) {
String str1 = "1;2;3;;2";
String str2 = "1;2;3;4;5;6";
String[] a1 = null;
String[] a2 = null;
a1 = str1.split(";",-2);
a2 = str2.split(";",-2);
for (String str : a1) {
System.out.println("a1 -> " + str);
}
for (String str : a2) {
System.out.println("a2 -> " + str);
}
}
}
Se vc colocar um valor negativo no segundo parametro do split vai pegar todos os brancos ate o fim.
Ou então use o
StringTokenizer xxx = new StringTokenizer(valor,";");
.split(";", 7);Assim ele fixa que o array de String terá tamanho 7
hummm, eu acho que seria desnecessario fazer desse jeito porque vc ta limitando o split de aplicar a RE somente ate encontrar 7, tem situacoes que vc pode precisar fazer isso, mas eu acho que nao eh o que o rbroz85 quer.
Por exemplo, se eu tiver o array :
String str1 = "1;2;3;;2;;;;;2";
E usar :
String[] a1 = str1.split(";",7);;
Quando eu listar todos os elementos do array eu vou ter :
a1 -> 1
a1 -> 2
a1 -> 3
a1 ->
a1 -> 2
a1 ->
a1 -> ;;;2
Por isso usar o -3 no segundo argumento faz com o o split aplique a RE ate o final sem ignorar os brancos.
nao galera…
eu nem posso delimitar o tamanho…
por exemplo seeu tenho uma linha assim:
1;4;;;;;;;;;;7
ele cria um string[12] blz !
mas se e utiver assim:
1;4;;;;;;;;;;
ele cria um string[2];
ou seja quando o ultimo esta fazio… ele desconcidera e diminue o tamanho do vetor…
entao, no java eu nao concegui resolver isso… entao eu fui la no excel… e adcionei mais uma coluna no final com um caracter qualquer assim:
1;4;;;;;;;;;;#
ou seja pra forçar ele ter 12 posições.
vai funcionar se eu fizer split (";",12) , como o ronybrand mencionou ?]
ele vai conciderar no meu vetor os campos nulos ?
abs
obrigado
Meu, coloca o segundo argumento do split um numero negativo!!!
compila o exemplo que eu coloquei ai
public class TesteSplit {
public static void main(String[] args) {
String str = "1;4;;;;;;;;;;";
String[] a = str.split(";" ,-1);
System.out.println("TAMANHO : " + a.length);
}
}
A saida vai ser : TAMANHO : 12 e nao 2
Se vc fazer um loop nesse array vc vai ver que ele nao ignorou os espacos em branco.