Kezdőoldal » Számítástechnika » Programozás » Hogyan tudom levágni egy...

Hogyan tudom levágni egy karakterlánc utolsó karakterét? Valamint ékezetes betűket lecserélni?

Figyelt kérdés

Sziasztok!

Azzal a kérdéssel fordulok hozzátok, hogy Java nyelven írok programot, de gy kicsit elakadtam. Az első kérdésem az lenne, hogyan tudom egy String típusú karakterlánc utolsó karakterét levágni?

A másik kérdésem pedig az, hogy sajnos nem értem, h a programom másik fele miért nem megy helyesen...

char[] ch = kars.toCharArray();

for (int i=0; i < ch.length; i++) {

if (ch[i] == 'á') ch[i] = 'a';

if (ch[i] == 'é') ch[i] = 'e';

if (ch[i] == 'í') ch[i] = 'i';

if (ch[i] == 'ó' || ch[i] == 'ö' || ch[i] == 'ő') ch[i] = 'o';

if (ch[i] == 'ú' || ch[i] == 'ü' || ch[i] == 'ű') ch[i] = 'u';

A kars egy String típusú változó, amibe bekérem a billentyűzetről az infót. A legérdekesebb, hogy az ű-t lecseréli u-ra, csak a többi nem akar menni. Próbáltam a karaktereket lecserélni, pl á-t ß-ra, hátha bejön, de nem sikerült. Van ötletetek esetleg?


2012. jan. 12. 14:08
 1/3 coopper ***** válasza:

Szia.


Először is nem vagyok egy nagy jávás, de gondolom az utolsó karaktert igy kapod meg valahogy :


utolso = kars[kars.length];


Az átalakitásra :


próbáld meg azt, hogy ugyanúgy alakitod át a "problémás" karaktereket mint a nem problémás karaktereket, tehát csinálj belőlük egy soros átalakitásokat :


if (ch[i] == 'ó') ch[i] = 'o';

if (ch[i] == 'ö') ch[i] = 'o';

if (ch[i] == 'ő') ch[i] = 'o';


Igy azt is megtudhatod, hogy melyik karakter miatt nem megy az átalakitás.


Sok sikert.

Üdv.

2012. jan. 12. 15:56
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

"Az első kérdésem az lenne, hogyan tudom egy String típusú karakterlánc utolsó karakterét levágni?"

ha kars egy string objektum (én inkább s-nek hívám)

kars.substring(int ettol,int eddig) visszaad egy String-et

ami kars string-bek ettol-eddig terjedő rész stringje.

Értelem szerűen levágja az utolsó karaktert így : kars=kars.substring(0,kars.length()-1);


kars.replace(char mit,char mire) visszaad egy stringet, értelem szerűen ...

kars=kars.replace('á','a') az összes előforduló á-t a-ra cseréltük kars-ban.


"A legérdekesebb, hogy az ű-t lecseréli u-ra, csak a többi nem akar menni. Próbáltam a karaktereket lecserélni, pl á-t ß-ra, hátha bejön, de nem sikerült. Van ötletetek esetleg?"

Tényleg "nagyon érdekes", mi magyarok használjuk ezeket a vacak ékezetes betűket, amivel egyébként mindig csak a gond van informatikába, nem tartozik az angol abc jelkészlet szimbólumai közé, az informatikai kódrendszerek megalkotói (kezdetben) nem vették figyelembe, ezeket a különlegesnek számító karakterekt ...

A konzol ablak (az a fekete ablak) amibe a java programod (is) fut a 852-es kódlapot használja, ez az alapértelmezett, hogy kompatibilis legyen a régi programokkal, a java forráskód az 1250-es kódlapban van, vagyis a szerkesztő amiben a forrást írod azt használja.

Windows alatt parancssorba CHCP 1250 paranccsal tudsz a megfelelő kódlapra áttérni.

2012. jan. 12. 16:29
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Tök jó működik :) Köszönöm a válaszokat!
2012. jan. 13. 10:54

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!