tenho este código e le um string do tipo: { 234, 56, 78, 124} e transforma num vetor. Pretendo que o vetor que ele crie seja do tipo int para poder ordenar os valores. obrigado
public static void main(String[] args) {
String stringDeNomes = "";
Scanner s = new Scanner(System.in);
System.out.println("Insira os valores: ");
stringDeNomes = s.nextLine();
String[] valores = stringDeNomes.split(", ");
for ( int x =0; x <valores.length; x++){
for ( int y = x+1; y <valores.length; y++) {
if(valores[x]<valores[y]){
}
}
}
}
vc pode declarar um vetor de inteiros e converter as strings do array de strings em inteiros:
// declarando vetor de inteiros
int vet[] = new int[4];
// convertendo strings p inteiros
for(int i = 0; i < vet.length; ++i) {
vet[i] = Integer.parseInt(valores[i]);
}
dps é só ordenar o vetor de inteiros:
// ordenando
for(int x = 0; x < vet.length; ++x) {
for(int y = x + 1; y < vet.length; ++y) {
if(vet[x] > vet[y]) {
int aux = vet[x];
vet[x] = vet[y];
vet[y] = aux;
}
}
}
obs.: eu inverti o sinal p colocar em ordem crescente
Você pode criar um vetor inteiro (int[] valoresInteiros) e, dentro do seu bloco for, atribuir a cada índice desse vetor o inteiro referente ao mesmo índice no vetor de strings (valores). Fica mais fácil de entender com o código:
String[] valores = stringDeNomes.split(", ");
int[] valoresInteiros = new int[valores.length];
for (int x = 0; x < valores.length; x++) {
valoresInteiros[x] = Integer.parseInt(valores[x]);
for (int y = x + 1; y < valores.length; y++) {
if (valoresInteiros[x] < valoresInteiros[y]) {
// seu código
}
}
}
O métodoInteger.parseInt(String value)converte uma string para inteiro.
Mas tome cuidado! A conversão pode lançar uma exceção (NumberFormatException), ou seja, interromper a execução do programa. Se você tentar converter uma palavra ou qualquer outro caractere que não seja um número. Resumindo, se o usuário digitar 234, 56, jacaré, 124, seu programa irá dar erro.
Você pode dar uma olhadinha nos blocos try { } catch { } e aprender sobre tratamento de exceções, algo necessário para qualquer programador.