Tenho um exercicio aqui q me pediram pra montar… meio q um desafio q me deram… tentar converter uma string para inteiro sem utilizar nenhuma função da API JAVA.
Ja tentei de tudo … mas de tudo mesmo… até o casting nao vai…
Alguem por acaso sabe se tem como fazer? o q eu poderia ultilizar pra efetuar esta conversao.
Kra nunc aparei pra pensar como faria n. Mas com certeza cast não daria certo =PP
Tenta pegando cada caractere da String (char) usando o método charAt, o algoritmo como disse nunca pensei, mas de antemão te digo q char são convertidos para int sem a necessidade de cast explicitos, afinal de contas char são números em última instancância, a unica diferça é q cada caractere é mapeado com um valor na tabela ASCII ou UNICODE. Acho q puraí vai.
exatamente… eu até tentei isso aqui embaixo mas nao deu certo… ele compila e da um monte de caracer estranho nada a ver com o q eu pedi.
Mas to tentando aqui
[code]import javax.swing.JOptionPane;
public class Conversao{
public static void main(String args[]){
String rec;
int cont=0;
int vet[];
rec = JOptionPane.showInputDialog(null,"Digite somente numeros para efetuar a conversão sem a utilização das funções JAVA","Conversão sem Funcões Java", JOptionPane.QUESTION_MESSAGE);
vet= new int[rec.length()];
for(cont=0;cont<rec.length();cont++){
int inteiro =rec.charAt(cont);
vet[cont]=inteiro;
}
JOptionPane.showMessageDialog(null,"o valor inteiro é: "+vet);
}
}[/code]
public static void main(String[] args) {
String str = "6";
int num = 0;
char c = str.charAt(0);
int j = (int) c;
switch (j) {
case 48: num = 0;
break;
case 49: num = 1;
break;
case 50: num = 2;
break;
case 51: num = 3;
break;
case 52: num = 4;
break;
case 53: num = 5;
break;
case 54: num = 6;
break;
case 55: num = 7;
break;
case 56: num = 8;
break;
case 57: num = 9;
break;
}
System.out.print(num);
}
esse é o codigo mais horrivel que eu ja vi!!.. hahaha… motivo de piada!!.. mas ta ai! hahaha
[quote=erickcellani]eu tenho até vergonha de mostrar… rsrs…
public static void main(String[] args) {
String str = "6";
int num = 0;
char c = str.charAt(0);
int j = (int) c;
switch (j) {
case 48: num = 0;
break;
case 49: num = 1;
break;
case 50: num = 2;
break;
case 51: num = 3;
break;
case 52: num = 4;
break;
case 53: num = 5;
break;
case 54: num = 6;
break;
case 55: num = 7;
break;
case 56: num = 8;
break;
case 57: num = 9;
break;
}
System.out.print(num);
}
esse é o codigo mais horrivel que eu ja vi!!.. hahaha… motivo de piada!!.. mas ta ai! hahaha
Tá na mão.
Fiz poucos testes mas acho q está blz.
Tá bem comentado (até de mais).
Acho que dá pra entender.
Boa tarde pra vcs.
[code]public class Exemplo {
public static int toInt(String s){
// Iniciando retorno
int retorno = 0;
// Loop do último para o primeiro caractere
for (int i = s.length() - 1; i >= 0; i--){
// Pegando o código ASCII
int vlr = s.charAt(i);
// Se não for número, retornando zero
if (vlr < 48 || vlr > 57)
return 0;
// Retirando 48 pois '0' = 48, '1' = 49, '2' = 50, etc
vlr -= 48;
// Definindo a casa onde o nr irá ficar (dezena, milhar, etc)
for (int j = 1; j < (s.length() - i); j++)
vlr = vlr * 10;
// Somando ao resultado
retorno = retorno + vlr;
}
// Tudo pronto! Agora é só correr por abraço
return retorno;
}
public static void main(String[] args){
// Montando string
String nr_str = "159967";
// Convertendo
int nr_int = toInt(nr_str);
// Imprimindo o resultado, já numérico
System.out.println(nr_int);
}
Tenho um exercicio aqui q me pediram pra montar... meio q um desafio q me deram... tentar converter uma string para inteiro sem utilizar nenhuma função da API JAVA.
Acho que a única coisa que você pode usar é “charAt”.
Dica:
O valor do caracter ‘0’, em Unicode, é 0x0030 (48 em decimal), ou então ‘0’.
Para obter o valor decimal de um dígito, basta então subtrair ‘0’. Esquisito, não?
char caracter = '9';
int valor = caracter - '0';
System.out.println (valor); // imprime 9
Além disso, para converter para decimal, vá da esquerda para a direita, pegue o valor de cada dígito, e vá multiplicando os resultados anteriores por 10. Exemplo:
String s = “3141”
int valordonumero = 0
caracter na posição 0 = ‘3’
valordocaracter = 3
então faça valordonumero = valordonumero * 10 + valordocaracter. Isso dá 3.
caracter na posição 1 = ‘1’
valordocaracter = 1
então faça valordonumero = valordonumero * 10 + valordocaracter. Isso dá 3 * 10 + 1 = 31.
Faça isso até acabar a string. OK?