Java:číslo->text

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Java:číslo->text

Příspěvek 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 ;-)
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek od 1Pupik1989 »

Inspirovat se můžet třeba zde.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek 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 :-/
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek 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š.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek 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?
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek 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... :-(
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek 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.

Kód: Vybrat vše

numero.charAt(length-2);
atd.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek 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();
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek 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.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek 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 :-///
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek 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ě.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek od twinky »

já právě stále nepochopil jak přiřadit text z pole , který jsem si nadefinoval k určité číslici :-//
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek 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. :)
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
twinky
Začátečník
Začátečník
Uživatelský avatar
Registrován: 26. zář 2008
Bydliště: Praha
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek 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
ThinkPad T460 || i5-6300U Skylake | 8GB RAM | 256GB SSD | HD520 | W10 Pro
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek 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.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek 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á...
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek 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.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
Exp
Začátečník
Začátečník
Registrován: 24. črc 2004
Bydliště: Tábor
Kontaktovat uživatele:

Re: Java:číslo->text

Příspěvek od Exp »

Ano, zapomněl sem tam napsat, že to platí pro inner class.
1Pupik1989
Začátečník
Začátečník
Registrován: 20. říj 2011
Bydliště: Dvůr Králové nad Labem

Re: Java:číslo->text

Příspěvek od 1Pupik1989 »

Ta hlàška v podstatě vysvětluje proč to nejde.

Lepší by bylo sem hodit kód a ne screenshot.
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
Odpovědět

Zpět na „Programování a web“