[RESOLVIDO]Passar String para int sem Integer.parseInt
13 respostas
G
GabbiRold
E aí pessoal, tô precisando de uma ajuda. Tenho que desenvolver minha própria API e há um caso que tenho que transformar string para int sem usar o Integer.parseInt, exemplo: "12" == 12 ou "abc12" == 12.
Tô tentando aqui mas não consigo pensar em muita coisa sem usar o Integer.parseInt :c E ah, vou mostrar como estou fazendo... Alguma ideia? Obrigada.
Bom pessoal, já consegui resolver esse problema depois de um bom tempinho.
drsmachado
Fiquei curioso para saber qual foi a solução aplicada.
fredericomaia10
Eu também fiquei curioso.
Ruttmann
THIS.
G
GabbiRold
Agora tava revisando, há um pequeno probleminha, vou testar e mostrar aqui depois.
G
GabbiRold
privatestaticfinalintASCII_NUMBER_BEGIN=48;privatestaticfinalintASCII_NUMBER_FINAL=57;privatestaticfinalintASCII_SPACE=32;privatestaticfinalintASCII_LOW_START_INDEX=97;privatestaticfinalintASCII_LOW_END_INDEX=122;publicstaticintstrToIntSpaceLetters(Strings){intinicio=-1,fim=0,numero=0,ctd=0,t=0;char[]chars={'','1','2','3','a','b','c'};//entra " 123abc" e tem que sair 123for(inti=0;i<chars.length;i++){if(chars[i]!=ASCII_SPACE&&chars[i]>=ASCII_NUMBER_BEGIN&&chars[i]<=ASCII_NUMBER_FINAL){if(inicio==-1){inicio=i;}fim=i;}}charc[]=newchar[(fim-inicio)+1];for(inti=0;i<chars.length;i++){if(chars[i]>=ASCII_NUMBER_BEGIN&&chars[i]<=ASCII_NUMBER_FINAL){c[t]=chars[i];t++;}}intaux=c.length-1;for(inti=0;i<c.length-1;i++){numero+=(c[i]-48)*(Math.pow(10,aux));aux--;}numero+=c[c.length-1]-48;System.out.println(numero);}
Ta aí pessoal.
Ataxexe
Como diria o Cebolinha: “Calálio, Cascão!”
Por que raios você não poderia usar o Integer.parseInt ? Quer reescrever a API do Java?
G
GabbiRold
Ataxexe:
Como diria o Cebolinha: “Calálio, Cascão!”
Por que raios você não poderia usar o Integer.parseInt ? Quer reescrever a API do Java?
É uma atividade de aula onde devo criar minha própria API e nesse caso eu não poderia usar o Integer.parseInt(). Foi um desafio e tanto rs.
drsmachado
GabbiRold:
Ataxexe:
Como diria o Cebolinha: “Calálio, Cascão!”
Por que raios você não poderia usar o Integer.parseInt ? Quer reescrever a API do Java?
É uma atividade de aula onde devo criar minha própria API e nesse caso eu não poderia usar o Integer.parseInt(). Foi um desafio e tanto rs.
Desafio? Isso é uma afronta… Claro que existem situações em que o uso de partes da API serão substituídos por coisas assim, mas isso é um exercício e tanto.
Obrigado por compartilhar a respostas.
Ataxexe
Ufa, menos mal. Mas foi um baita exercício ein.
gomesrod
GabbiRold:
É uma atividade de aula onde devo criar minha própria API e nesse caso eu não poderia usar o Integer.parseInt()
Resposta do Joãozinho:
/*** Converte de string para int sem usar Integer.parseInt()*/publicstaticintstrToIntSpaceLetters(Strings){longvalor=Long.parseLong(s);return(int)valor;}