1
resposta

Passando Strings para vetor de Char

Estou transformando String em um vetor de char nesse código, o problema é que se eu quiser passar números com 2 casas decimais ele salva cada numero em uma posição.

Além de querer evitar que o vetor salve espaços, pois meu problema exige uma entrada vertical ( 10 3 11 )

Alguém pra me ajudar?

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Loteria {

    public static void main(String[] args) throws IOException {        
        String chute = null;
        int sorteado[] = new int[6];

        sorteado = GeraNumeroAleatorio(sorteado);

        chute = PreencheFila(chute);

        char cChute[] = chute.toCharArray();
        int chuteInt[] = new int[cChute.length];

        chuteInt = ConvertePraInt(cChute);

        for(int i = 0; i < 6; i++) {
            System.out.println(chuteInt[i]);
        }

        int acertou = 0;

        for(int i = 0; i < 6; i++) {
            for(int j = 0; j < 6; j++) {
                if(sorteado[i] == chuteInt[j]) {
                    acertou++;
                    System.out.println(acertou);
                }
            }
        }

        Sorteia sort = new Sorteia(acertou);

        sort.imprimir_resultado();

    }

public static String PreencheFila(String chute) throws IOException {
    InputStreamReader ir = new InputStreamReader(System.in);
    BufferedReader in = new BufferedReader(ir);

        chute = (in.readLine());

    return chute;
}
public static int[] ConvertePraInt(char chuteChar[]) {
    int[] chuteInt = new int[chuteChar.length];
    for(int i = 0; i < chuteChar.length; i++) {
        chuteInt[i] = Integer.parseInt(String.valueOf(chuteChar[i]));    
    }
    return chuteInt;
}

public static int[] GeraNumeroAleatorio(int sorteado[]) {
    Random gerador = new Random();

    for(int i = 0; i < 6; i++) {
        sorteado[i] = gerador.nextInt(99)+1;
        System.out.println(sorteado[i]);
        for(int j = 0; j < i; j++) {
            if(sorteado[i] == sorteado[j]) {
            sorteado[i] = gerador.nextInt(99)+1;
            }
        }
    }

    return sorteado;
}
}
    class Sorteia{
        private int acertos;

        public Sorteia(int acertos){
            this.acertos = acertos;
        }
        public int getAcertos() {
            return acertos;
        }
        public void setAcertos(int acertos) {
            this.acertos = acertos;
        }
        public void comparacao(int[] aposta) {

        }
        public void imprimir_resultado() {
            if(getAcertos() < 4) {
                System.out.println("Azar");
                }else if(getAcertos() == 4) {
                    System.out.println("Terno");
                }else if(getAcertos() == 5) {
                    System.out.println("Quina");
                }else {
                    System.out.println("Sena");
                }

        }

    }
1 resposta

Boa noite, Pedro! Como vai?

Eu não entendi muito bem a sua dúvida! Pois veja só, se vc quer quebrar a string em um vetor de char, então consequentemente cada char terá apenas um caractere!

Qual o seu objetivo no final das contas? Vc quer pegar uma string composta por números separados por espaços e obter um array somente com os números, é isso?

Se for, vc pode usar o método split() para separar a string utilizando como separador os espaços em branco! Ficaria assim:

String[] numeros = stringComNumeros.split(" ");

Caso não seja essa a ideia, me explica aí seu objetivo que eu tento te ajudar!

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software