Stránka 1 z 1

Řetězce v javě - nevypíše ostatní znaky  Vyřešeno

Napsal: 09 led 2013 18:43
od eda220
Dobrý den, mám jistý porblém s jednou úlohou v javě (NetBeans). Máme vytvořit program, který v danném řetězci převede velké písmeno na malé a naopak. Úkol mám jako takový mám hotový, ale vadí a asi by to vadilo i ostatním, že když se v řetězci nachází i něco jiného, než písmena (číslovky, vykřičník, pomlčky...), tak se nevypíší poté do převedeného řetězcu. Jinak písmena jsou správně převedená. Prosím poraďte, kde bych měl co změnit/přidat. Děkuji

► Zobrazit spoiler

Re: Řetězce v javě - nevypíše ostatní znaky

Napsal: 09 led 2013 18:57
od faraon
Když vypisuješ jen malá a velká písmena, tak se nediv že ostatní znaky tam nemáš ;-)
A používej else, když už jedna možnost nastala, tak nemá smysl testovat další. Také je dobré kreslit si vývojové diagramy, hodně pomáhají představivosti a ušetří dost práce s hledáním chyb.

Kód: Vybrat vše

char z = s.charAt(i);
if (Character.isLowerCase(z))
   {
   System.out.print(Character.toUpperCase(z));
   }
else
   if (Character.isUpperCase(z))
      {
      System.out.print(Character.toLowerCase(z));
      }
   else
      System.out.print(z);

Já bych teda spíš měnil znaky přímo v tom řetězci a pak ho zobrazil celý najednou. Všiml sis že v ASCII se malá a velká písmena liší o 32, což je zároveň kód mezery? Toho se dá celkem vtipně využít...

Re: Řetězce v javě - nevypíše ostatní znaky

Napsal: 09 led 2013 19:41
od eda220
Děkuji moc, opraveno a funguje. Uzavírám

Btw, na to ASCII se mrknu, něco na tom bude.