Erro ao utilizar uma String para calculos

Bom dia amigos.

A o tentar utilizar uma String para realizar um calculo, estou recebendo uma:
“Exception in thread “main” java.lang.NumberFormatException: For input string: “c””,

Esta acusando problema na linha:
int restoparte4 = Integer.parseInt(parteA[3]) % Integer.parseInt(mod97);

Agradeço a ajuda.

Fernando

import java.util.HashMap; import java.util.Scanner; import java.lang.*;
   public class Partes {

   static String mod97 = "97";
   static String parte0Banco = "1234567";
   static String pais;
   static String tipo;
   static String titular;
   static String parte2Ag;
   static String parteConta3;
   static String parte4Tipo;
   static String parte5Titular;
   static String restoparte0;
   static String restoparte1;
   static String restoparte2;
   static String restoparte3;
   static String restoparte4;
   static String restoparte5;
   
   static int parte11;
   static int parte12;
   static int parte13;
   static int parte14;
   static int restoparte10;
   static int restoparte11;
   static int restoparte12;
   static int restoparte13;
   static int restoparte14;
   static int restoparte15;
   
   static int digito;
   
   public static void main(String[] args){
    int restoparte1 = Integer.parseInt(parte0Banco) % Integer.parseInt(mod97);
      
	   System.out.println("resto parte1(Banco): " + restoparte1);
System.out.println("----------------------------------primeira parte ----------------------------------------------------------------");
      String[] parteA = new String[5];

      Scanner entrada = new Scanner(System.in);
     
      System.out.print("Digite a Agência com 4 digitos: ");
      parteA[1] = entrada.next();
    
      
      System.out.print("Digite a conta: ");
      parteA[2] = entrada.next();

      System.out.print("Digite o Tipo CP ");
      parteA[3] = entrada.next();

      System.out.print("Digite o Titular: ");
      parteA[4] = entrada.next();

              
              int restoparte2 = Integer.parseInt( parteA[1]) % Integer.parseInt(mod97);
              System.out.println("Resto da parte2(AGENCIA): " + restoparte2);
             
              int restoparte3 = Integer.parseInt(parteA[2]) % Integer.parseInt(mod97);
              System.out.println("Resto da parte3(CONTA): " + restoparte3);
              
              if(parteA[3] == "c" ){
            	  parte4Tipo = "1";
              } if(parteA[3] == "C"){
              	parte4Tipo = "2";
              } if(parteA[3] == "p"){
            	parte4Tipo = "2";
              }if (parteA[3] == "P"){
              	parte4Tipo = "2";
              }
              else{
            	    System.out.println("Tipo de conta Invalido. Digite C ou P");
              }
              
              int restoparte4 = Integer.parseInt(parteA[3]) % Integer.parseInt(mod97);
              System.out.println("Resto da parte4(Titular): " + restoparte4);
              
        }
   }

<\code>

1 - Substitua cada entrada.next() por entrada.nextLine()

2 - Compare cada String utilizando método equals e não ==, por exemplo ao invés de parteA[3] == "c" faça "c".equals(parteA[3])

2 curtidas

Valeu Staroski, funcionou certinho. Resposta instantânea rsssss!!!

Muito obrigado cara

Abs

Staroski, por favor, porque retorna sempre a ultima opção? (25)

               "C".equals(parteA[3]);
                      parte4Tipo = "12";
              "c".equals(parteA[3]);
                      parte4Tipo = "12";
              "p".equals(parteA[3]);
                      parte4Tipo = "25";
              "P".equals(parteA[3]);
                      parte4Tipo = "25";

Grato

É porque você não está fazendo if's.

1 curtida

Poxa, vlw de novo!!!

abs