Diskuze: Formát textu na písmena
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Tak teď trošku nevím, jestli to myslíš vážně nebo si děláš
srandu....
Java pochopitelně nic takového nemá. Maximálně existuje nějaký date
formating, který ale tuším jediné co převádí, tak dny v týdnu z názvu
na čísla a zpátky, případně měsíc. Ale číslovky jako takové...
Popravdě ani netuším, k čemu by něco takového bylo dobrého....
Když už bys to potřeboval, musel by sis všechno naťukat ručně.
import java.util.List;
import java.util.ArrayList;
public class Blbost {
public static List<String> cislaVTextovePodobe = new ArrayList<>();
private static void nastaveniCiselDoTextovePodoby() {
cislaVTextovePodobe.add("jednu");
cislaVTextovePodobe.add("dvě");
cislaVTextovePodobe.add("tři");
cislaVTextovePodobe.add("čtyři");
cislaVTextovePodobe.add("pět");
//do 24 ti to vypisovat nebudu, zapomeň!!!
}
public Blbost(String puvodniVeta) {
String novaVeta = puvodniVeta;
for (int i = 0; i < cislaVTextovePodobe.size(); i++) {
if (puvodniVeta.contains(cislaVTextovePodobe.get(i))) {
novaVeta = novaVeta.replace(cislaVTextovePodobe.get(i), String.valueOf(i + 1));
}
}
System.out.println(novaVeta);
}
public static void main(String[] args) {
nastaveniCiselDoTextovePodoby();
Blbost blbost = new Blbost("Dnes jsem ve tři hodiny viděl pět holubic");
}
}
Pochopitelně by tam mohlo být místo kolekce pole, čímž bys to sice jednodušeji vypsal na začátku, ale v případném rozšíření programu by se ti těžko s polem pracovalo (třeba kdybys měl metody, které by tento list rozšiřovaly a naopak)
To by sice šlo, ale není to šťastnej způsob....pokud jsem viděl 6 453 236 holubic...tak by musel být kód celkem dlouhej
tak pochopitelně by se to dalo udělat objektově - pomocí metod.
Vzal bys to jako řetězec a jen bys to upodmínkoval.
Dal bys tam třeba podmínku, že pokud je velikost pole/kolekce větší než
4, tak první číslo bude mít přídavný text "tisíc" atd.
Problém nastává ve skloňování - v angličtině bys takový problém
neměl.
V češtině máš jeden tisíc, dva tisíce atd. Kdysi jsem si toto
skloňování nastavoval. vlastně existují vždy 3 způsoby skloňování. U 1
( sto, tisíc, atd.) U 2 (stě tisíce). Tisíce by byly i společné pro 3 - 4
(sta, tisíce) a pak 5 - 9 máš stejné (set, tísíc) atd. atd. Určitě by to
šlo zobecnit. To co jsem ti postnul, to bylo jedno z možných řešení.
Všechno se dá vždy rozšiřovat. Nicméně je vážně tento problém v praxi
vcelku na nic. Nikdy nic takového řešit nebudeš muset (je to čistě
kosmetika, bez které se každý uživatel obejde).
Zobrazeno 5 zpráv z 5.