|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 1279
|
[JAVA] consiglio: esercizio, stampare numero in lettere (es 123, stampo uno due tre)
ciao a tutti..provengo dal C e sto cercando di imparare java.
devo svolgere questo esercizio: "prendere un un numero n da input e stamapre le cifre di n in lettere.. es: 123 stampo: uno due tre" io l'ho fatto così (creo un metodo e lo uso ricorsivamente), e funziona.. ma sinceramente non mi piace proprio.. c'è qualche altro modo per farlo in modo più elegante grazie a tutti Quote:
__________________
ho concluso affari con i seguenti forum: aessenet, amd planet, hwtweackers, hwupgrade. in questo forum con: cicos, hungwavy se si scrive così, jcd,JeanCaneo, solertes, remok, Krosis,giorgio156c,-rambo-, gertuzz,dOkTOR_dO,Leland Gaunt,f.loiacono, ercagno |
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Puoi anche usare una mappa con chiavi Character e valori String, tipo
Map<Character, String> numeriInLettere = new HashMap<Character, String>(); infilare nella mappa le corrispondenze: numeriInLettere.put('0', "zero"); numeriInLettere.put('1', "uno"); numeriInLettere.put('2', "due"); eccetera Dopodichè per ogni carattere della stringa stampi numeriInLettere.get(carattere). Se avete fatto le mappe. In alternativa puoi usare gli array (che sono mappe di un tipo particolare). Dieci stringhe; String[] mappa = { "zero", "uno", "due", "tre", ...eccetera }; e passi dal carattere al numero (che sarebbe poi la tua funzione di hashing) con una sottrazione: indice = stringa.charAt(x) - '0'; e stampi mappa[indice];
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Codice:
package prova;
import java.util.*;
import java.lang.String;
public class Main {
public static void foo(int x)
{
String[] vett = {"zero", "uno", "due", "tre", "quattro", "cinque",
"sei", "sette", "otto", "nove"};
if(x % 10 == x)
System.out.println(vett[x]);
else
{
int a = x % 10;
int b = x / 10;
foo(b);
System.out.println(vett[a]);
}
}
public static void main (String args[])
{
Scanner in = new Scanner(System.in);
System.out.println("inserisci un numero: ");
int n = in.nextInt();
foo(n);
System.out.println();
}
}
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
"Puliamola" un po':
Codice:
public static int foo(int x)
{
String[] vett = {"zero ", "uno ", "due ", "tre ", "quattro ", "cinque ",
"sei ", "sette ", "otto ", "nove "};
if(x % 10 != x)
foo(x / 10);
System.out.println(vett[x % 10]);
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:30.



















