1
resposta

Usando split para quebrar uma string Java

Não consigo fazer a string ser separada por linhas, toda vez que mando retornar a string quebrada com valor do array em 0 ela me retorna o primeiro caráctere...

Response response = client.newCall(request).execute();

        String respostaRequest = new String(response.body().string());

        String respostaAutomatica = respostaRequest.split("\r")[0];

        System.out.println(respostaAutomatica);

        System.out.println(respostaAutomatica.length());

        String idCaixaOperacaoRetorno = respostaAutomatica.split("|")[3] + 
                respostaAutomatica.split("|")[4] + 
                respostaAutomatica.split("|")[5] + 
                respostaAutomatica.split("|")[6] + 
                respostaAutomatica.split("|")[7] +
                respostaAutomatica.split("|")[8] +
                respostaAutomatica.split("|")[9];

        String status = respostaAutomatica.split("|")[0] + respostaAutomatica.split("|")[1];




        if (respostaAutomatica != null && respostaAutomatica != "") {



            if (status.equals("OK")) {

                try {


                    System.out.println("Id Caixa Operação: " + idCaixaOperacaoRetorno);
                    System.out.println("Satus: " + status);



                } catch (Exception e) {

                }

            }

        }
1 resposta

Oioi Fabio, tudo bem?

Desculpa pela demora em obter retorno.

Acho que não está funcionando porque para usar o método split, você deveria criar antes um array de strings. No seu código, respostaAutomatica é apenas uma String simples. Como não sei a lógica completa do seu programa, acredito que as alterações ficam mais ou menos assim:

Response response = client.newCall(request).execute();

        String respostaRequest = new String(response.body().string());

        String respostaAutomatica[] = respostaRequest.split("\r");

        System.out.println(respostaAutomatica);

        System.out.println(respostaAutomatica.length);

        String respostas[] = respostaAutomatica[2].split("|"); 
        String idCaixaOperacaoRetorno = respostas[4] + 
                respostas[5] + 
                respostas[6] + 
                respostas[7] +
                respostas[8] +
                respostas[9];

        String status = respostas[0] + respostas[1];




        if (respostaAutomatica != null && respostaRequest != "") {



            if (status.equals("OK")) {

                try {


                    System.out.println("Id Caixa Operação: " + idCaixaOperacaoRetorno);
                    System.out.println("Satus: " + status);



                } catch (Exception e) {

                }

            }

        }

No caso, se existem 2 tipos diferentes para fazer a separação, temos que criar 2 arrays diferentes para armazená-los. Caso não tenha ficado claro, responde aqui por favor pra eu te ajudar.

Espero ter contribuído! Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

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