PDA

View Full Version : [java]Convertire i caratteri in numeri Ascii


Voltron
18-05-2005, 17:59
Innanzitutto ciao a tutti del forum! :)

Premetto che sto realizzando un progetto per un esame universitario in cui devo realizzare una classe java capace di gestire automi.
Nello specifico avrei bisogno che qualcuno mi indicasse come poter ottenere il corrispettivo codice ascii di un carattere......?! :confused:

Cercherò d'essere più chiaro :p facendo un piccolo esempio:

il carattere F corrisponde al numero 70 in codice Ascii; quindi a me servirebbe un comando che converta il carattere immesso dall'utente nel suo corrispettivo valore numerico Ascii.

Un grazie anticipato a tutti coloro che sapranno aiutarmi! :O :cry:

kingv
18-05-2005, 19:38
char c = 'F';
int i = (int) c; // 70 decimale

Voltron
19-05-2005, 21:16
Grazie! :p

Voltron
20-05-2005, 18:45
char c = 'F';
int i = (int) c; // 70 decimale


Se non chiedo troppo.....esiste qualche modalità per fare l'operazione inversa?? :confused:

Ossia una volta convertito il carattere digitato dall'utente nel suo corrispettivo numerico ascii, tale numero viene memorizzato all'interno di una array-multidimensionale per delle operazioni di ricerca, al cui termine mi dovranno restituire nuovamente il carattere corrispondente.

kingv
20-05-2005, 20:16
Se non chiedo troppo.....esiste qualche modalità per fare l'operazione inversa?? :confused:
Ossia una volta convertito il carattere digitato dall'utente nel suo corrispettivo numerico ascii, tale numero viene memorizzato all'interno di una array-multidimensionale per delle operazioni di ricerca, al cui termine mi dovranno restituire nuovamente il carattere corrispondente.


allo stesso modo ;)

int i = 70;
char c = (char)i;

Voltron
20-05-2005, 22:59
allo stesso modo ;)

int i = 70;
char c = (char)i;

Purtroppo non è così facile!

Se scrivo quello che tu mi hai indicato all'interno di una classe

import javax.swing.*;

public class pippo{


public static void main(String[]args){

int i = 70;
char c = char(i);
}
}


NetBeans mi dà questo messaggio di errore:

prove_java/pippo.java [12:1] '.class' expected
char c = char(i);
^
1 error
Errors compiling pippo.


Inoltre leggendo attentamente la sezione inerente le "conversioni tra tipi numerici" nel libro "Java2 i fondamenti" di Horstmann, si evince che un 'char' può essere convertito in un 'int' ma non è possibile il contrario!(un 'int' è convertibile al max in un 'long' opp 'double').

C'è un modo per aggirare il problema???

Voltron
20-05-2005, 23:50
Problema risolto! :D

Il codice corretto è:

int t = 70;
char g = (char)t;



Grazie ancora per il tuo interessamento! :)

kingv
20-05-2005, 23:53
guarda bene, il mio codice e il tuo non sono uguali :p

inoltre intendevo che la conversione è significativa nel range degli ascii, se consideri che java usa unicode per il tipo char (quindi su 16 bit) e gli interi a 32 bit ovviamente non è possibile una corrispondenza uno a uno ;)

Voltron
21-05-2005, 00:06
guarda bene, il mio codice e il tuo non sono uguali :p

inoltre intendevo che la conversione è significativa nel range degli ascii, se consideri che java usa unicode per il tipo char (quindi su 16 bit) e gli interi a 32 bit ovviamente non è possibile una corrispondenza uno a uno ;)

Chiedo umilmente perdono per l'erorre di copiatura del tuo codice!! :doh:
Si vede che l'ora tarda ha disattivato i pochi neuroni che possiedo! :fagiano:

cmq sto trovando più difficoltà nel realizzare una classe per la gestione di "automi elaboratori di stringhe" che per la creazione di front-end! :muro: