Stránka 1 z 1
Java:číslo->text
Napsal: pát 22. lis 2013, 19:39
od twinky
Dobrý den, chtěl bych se jen zeptat, zda by jste mě nějak nenavedli, jakým nejlepším postupem udělat v javě tento druh programu -> přepíše zadané číslo ze vstupu na text
( např.: 351 na třistapadesátjedna )
Děkuji

Re: Java:číslo->text
Napsal: sob 23. lis 2013, 16:03
od 1Pupik1989
Inspirovat se můžet třeba
zde.
Re: Java:číslo->text
Napsal: ned 24. lis 2013, 21:31
od twinky
a prosím mohl bych třeba poprosit jen náznakově napsat třeba program pro převod čísel od 0-100?
Jen jak to zapsat v těch polích...moc se v tom javascriptu nevyznám z toho odkazu :-/
Re: Java:číslo->text
Napsal: ned 24. lis 2013, 23:08
od 1Pupik1989
Program se mi napsat nechce. Popíšu ale princip.
Máš třeba třímístné číslo 351 jak jsi zmiňoval.
1. Číslo si převedeš na string.
2. Tady je otázka jak si to zvolíš. Já ten string projíždím odzadu po 3 polích. Čili kdyby to čislo bylo 123456, tak v 1. iteraci budu mít 456 a v druhé 123.
3. Poslední znak jsou stovky (351), tam není co řešit. Druhé číslo jsou desítky. Tam musíš vychytávat vyjímku, protože 11 se řekne jedenáct, ne deset jedna.
4. Pokud u desítek nenastala vyjímka, tak zapíšeš jednotky.
Pole je můžeš mít tř. Další možností je vytvořit 1 pole od 1 do 999 a měnit to rovnou najednou. Takové pole lehce vygeneruješ v cyklu. Pak by se klíč v poli rovnal slovnímu vyjádření. Je už na tobě jak si vybereš.
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 09:59
od twinky
ok...takže si udělám nejdříve
1.
Kód: Vybrat vše
System.out.print("Zadejte číslo pro převod:");
int cislo;
cislo = sc.nextInt();
String numero = Integer.toString(cislo);
2. pak si navolím pole a budu je pomocí numero.length zjišťovat na různých pozicích a pak přidělovat hodnoty z pole ok?
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 10:36
od twinky
...jsem zoufalý... opravdu by to nešlo jen jao nějaký příklad ukázat...

koukal jsem na to celou noc a nic...

Re: Java:číslo->text
Napsal: pon 25. lis 2013, 10:48
od 1Pupik1989
Přesně tak a teď to projedeš cyklem. Javu moc neznám, takže jen co jsem zběžně proběhl část dokumentace, by mohl vypadat asi takto:
Kód: Vybrat vše
int length = numero.length();
String a,b,c;
for (;length>0; i-=3){
a = numero[i-2] || 0;
b = numero[i-1] || 0;
c = numero[i];
}
Nezkoumal jsem, jestli v javě jde přiřazovat jako v javascriptu. Čili pokud pokud klíč v poli neexistuje, tak se přiřadí 0.
Potom už akorát musíš odchytit vyjímku a do nějakého stringu s názvem třeba "output" zapisovat slova z polí.
Pokud nastane vyjímka, tak přiřazování "c" můžeš přeskočit nebo ho nastavit na 0.
Jinak pole pro jednotky by vypadalo asi takto:
Kód: Vybrat vše
String[] jednotky = {"", "jedna", "dvě", "tři", "čtyři", "pět", "šest", "sedm", "osm", "devět"};
Nula se nepřevádí na slovní vyjádření, ale tak to je doufám jasné.
//edit a ještě si nejsem jistý, jestli java umí ke Stringu přistupovat jako k poli, takže asi použij charAt.
atd.
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 11:14
od twinky
ten int length? to je pro vstup čísla, který zadá uživatel...? / a to numero?
nešlo by to třeba takhle?
Kód: Vybrat vše
int length = String.valueOf(cislo).length();
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 12:17
od 1Pupik1989
int length je délka toho čísla převedeného na string. Čili 12349 má délku 5.
A ano, půjde, ale je to zbytečné, když je to číslo už jednou převedené na string.
//edit: Ještě mě tak napadá, že "a,b,c" nemusí být typu string, ale jen char.
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 14:20
od twinky
a prosím neukázal by si mi to jen třeba na čísle 56? Jak by jsi to napsal? Potřebuji se jen ěčeho chytit , jak to má vypadat :-///
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 14:27
od 1Pupik1989
Krostě podle čísla jakožto klíč vybereš text z pole ne? Nic složitého. Psát to nebudu, protože neprogramuji v javě.
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 14:43
od twinky
já právě stále nepochopil jak přiřadit text z pole , který jsem si nadefinoval k určité číslici :-//
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 15:07
od 1Pupik1989
Máš číslo 251.
Kód: Vybrat vše
String stovky = nazvyStovek[2];
String desitky = nazvyDesitek[5];
String jednotky = nazvyJednotek[1];
Asi tak nějak.

Re: Java:číslo->text
Napsal: pon 25. lis 2013, 15:21
od twinky
UŽ jsem něco napsal, ale stále mi to hází chybu u všech nově vytvořených metod..viz příloha... :-/
http://2imgs.com/b8895872a1
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 18:52
od 1Pupik1989
To ale chyba v deklaraci pole není. To máš chybu jinde. Vzhledem k tomu, že nevidím celý kód, tak ti neřeknu kde.
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 20:10
od Exp
V javě je pravděpodobně nutnost mít třídu statickou, abys mohl deklarovat statický proměnný. Myslim ale že pro začátek bys měl vědět co to vůbec znamená...
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 22:15
od 1Pupik1989
Není třeba, statickou proměnnou jde deklarovat snad všude. Podobně jsem dnes napsal v javě třídu na matice. Spíš si tipnu, že má třídu obalenou třídou a javě se potom nelíbí ta deklarace.
Re: Java:číslo->text
Napsal: pon 25. lis 2013, 22:50
od Exp
Ano, zapomněl sem tam napsat, že to platí pro inner class.
Re: Java:číslo->text
Napsal: úte 26. lis 2013, 07:07
od 1Pupik1989
Ta hlàška v podstatě vysvětluje proč to nejde.
Lepší by bylo sem hodit kód a ne screenshot.