Ezt hogyan oldjam meg javában?
Egy érettségi programozás feladatában ilyen adatokat kellett beolbasni és eltárolni.:
1 13
#abor# #e#tun###agy#szel#2# #o##h#d#g ##rkasn#o#oka# #a#tunk e####a#akn##$#$#$##$$$$$$####
1 19
ta###t##ertunk ##gy #zel#####ok hide##f#r##sn#omo#at ##ttu## e#y patak#al$#$$$$$###$$$$$$$
public void fájlBeolvasás(String fájlNév) throws FileNotFoundException{
Scanner in = new Scanner(new File(fájlNév));
int nap = 0;
int rádióAmatőr = 0;
String tartalom = "";
int counter = 0;
while (in.hasNextLine()){
counter++;
String line = in.nextLine();
String sor[] = line.split(" ");
if (sor.length == 2){
nap = Integer.parseInt(sor[0]);
rádióAmatőr = Integer.parseInt(sor[1]);
} else {
tartalom = line;
}
if(counter%2 == 0){
ürenetek.add(new Üzenet(nap, rádióAmatőr, tartalom));
}
}
}
Itt elvileg azt kéne csinálnia, hogy ha a sort 2 részre osztja, akkor a napot és rádióamatőrt tárolja el, amik egy szóközzel elválasztott számok.
Ha bármilyen más hosszúságú, akkor a hossszú sort tárolja el az üzenet tartalmaként.
Az a baj, hogy több száz adat van és van olyan ilyen "furra" mindenféle jellel ellátott sor ahol ugyan csak 2re határolja el ha a "split"be a szóközt használom argumentumként és ez megtöri a kódot amikor bele megy az if (sor.length == 2)be mert ott 2 számra számítós és két ilyen jelent nem tud inté alakítani "#o##h#d#g", "#o##h#d#g".
Tudom, hogy a splittel van a probléma. Már régóta tesztelgetem a kódot de nem tudom hogyan csináljam meg.
"String sor[] = line.split("-|\\.")"
Ezt is próbáltam. Ebben az esetben a "furcsa" sort nagyon szépen feltöri több darabba, de az sima számos sorral nem csinál semmit.
Nem értek a split methodhoz annyira.
Hogyan tudhatnám megcsinálni így, hogy mondjuk a # jelnél és a szóközöknél törtjön?
(Akkor biztos többre törtné a furcsa sort és az elsőt csak 2re)
Plusz bármilyen tanácsot elfogadot :D
Bocs, a gyakori ilyen furcsán osztja meg a kód mintákat.
Itt megtaláljátok sokkal szebben.
pas (asdas) tebin. com/S4htf6GK
Tudom kicsit furcsán írtam le a linket, de valamiért a gyakori utálja ezt az oldalt és a rövidített linkeket, ezért csak így tudom megosztani. A zárójeles részt vegyétek ki pluszt a szóközöket :D
Ha szöveges sor van nem kell splittelni.
Felváltva követik egymást a sorok, két szám, szöveg, két szám, szöveg.
2# De vannak olyan "szöveg" sorok amik számokkal kezdődnek.
pl:
0/3#a pa#a#on##uli#dombon#kol##o# ##tszot### #e######l$$$$$$#$$$$$##$#$#$$$#$$$#$$$$$$$$$$
Amugy hogyan lehet megcsinálni hogy a split method a szóköz és a hastag jelnél válasszon?
(Oké máshogy is meglehet csinálni, de már tudni akarom)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!