Kezdőoldal » Számítástechnika » Programozás » Konzorol szöveg bekérés, és 2...

Konzorol szöveg bekérés, és 2 dimenziós tombbe mentes?

Figyelt kérdés
Az lenne a feladat, hogy az elso tomb 1 dimenziojaba a szavak, a masodikba pedig a leghosszabb szo keruljon..

2019. okt. 9. 22:23
1 2
 1/11 A kérdező kommentje:
Java programnyelven
2019. okt. 9. 22:24
 2/11 anonim ***** válasza:
76%

?


N*M-es tömb? Ha felső sort kitöltöm a másodikba csak a leghosszabbat, akkor pazaroljuk a memóriát, mert a 2. sorban csak 1-et fogunk lefoglalni. Ennek nincs értelme.


Fogalmazd meg jobban a feladatot.

2019. okt. 9. 22:29
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

Kurzusos feladat, most tanulom még csak, és ezt adták.

Lényegében annyi hogy pl. az "Ez egy szoveg!" konzolrol beirt szoveget az elso tombbe mentse el, és a második tömbbe pedig a legtöbb karakterből álló szót, ami jelen esetben a szöveg! (felkiátójellel). Tehát karakterekre is fel kell bontani valamikor.


Próbálkoztam tényleg, vagy 6 órát ültem felette, - mérgemben el is ment vagy fél doboz cigi -de sehogy sem jó. Igaz, én úgy próbáltam, hogy alapból stringnek adtam meg a szöveget, nem pedig argumentumba, se nem pedig konzolra... De azt hiszem az en modszeremmel meg sem lehet oldalni.

2019. okt. 9. 22:40
 4/11 anonim ***** válasza:
100%

Te érted is, amit leírsz? - "alapból stringnek adtam meg a szöveget, nem pedig argumentumba, se nem pedig konzolra"


Ha stringként kezeled a mondatot, akkor az tulajdonképpen alapból karakterekre van bontva, szóval jó az irány.


Csinálhatod úgy a feladatot, hogy a stringet berakod az első tömb végére, majd egy ciklussal elkezded feldarabolni szavanként (mondjuk a szóköz, mint szóelválasztó, jó észrevétel lehet) a stringet és az aktuális szót eltárolod, HA a szó hosszabb az előzőnél. Miután a ciklus lefut, az eltárolt szót berakod a második tömb végére.

2019. okt. 10. 00:18
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
100%
Minden elválasztó lehet, ami nem betű :)
2019. okt. 10. 04:22
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:
És hogy kezdjem el ellenőrizni szavanként, ha egy szovegem van szavanként?
2019. okt. 10. 09:56
 7/11 A kérdező kommentje:
Med hogyan tudom amugy is belerakni a szavakat a tomb elso dimenziojaba?
2019. okt. 10. 10:15
 8/11 anonim ***** válasza:
100%

A beépített String Class tartalmaz egy split() nevű metódust, ami String tömböt ad vissza, remélem ismered. De ha nem:


Ha van egy Stringed:

String str = "egy ketto harom";

akkor

String[] tomb = str.split(" ");

tömbbe darabolja a stringet a split-nek megadott paraméter előfordulásai mentén.


Tartalmaz még a String Class egy intet visszaadó length() metódust, remélem ismered. Például tomb[0].length(); 3-at fog visszaadni, mert most tomb[0] == "egy".


Ennek nem sok értelmét látom hogy "a második dimenzióba kerül a legosszabb szó", karakterekre darabolva. Egy kétdimenziós tömb Java-ban az tömböknek egy tömbje, esetünkben egy String tömb tömb. Legyen mondjuk ez kételemű, tehát két String tömböt tartalmaz a tömb. Az első String tömb a szavak, a második pedig a leghosszabb szó karakterei. Na most ez nem a "második dimenzióba" kerül, mert lehetne akár 8-elemű is ez a String tömb tömb (tehát 8 String tömbböl álló tömb), attól még ugyanúgy kétdimenziós lenne.


Na most a split() metódussal karakterekre is lehet bontani egy Stringet. Java 8-tól ennyi az egész: szo.split("")


Régebbi Java-val: szo.split("(?!^)")

hogy ez miért is működik, meg kell tanulnod a reguláris kifejezéseket (regex)


Szóval most van két tömböd, egy szavak tömbje és egy karaktertömb (ami nem char tömb, hanem egy-hosszúságú Stringek tömbje). Megcsinálod a kétdimenziós tömbödet és ezeket belerakod. És itt jön a probléma, hogy ha nem ugyanolyan hosszú a kettő. Akkor mondjuk a rövidebbet ugyanolyan hosszúra kell csinálni, mint a másik, mondjuk üres Stringekkel feltöltöd a végét.

2019. okt. 10. 11:42
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
100%

"És itt jön a probléma, hogy ha nem ugyanolyan hosszú a kettő. Akkor mondjuk a rövidebbet ugyanolyan hosszúra kell csinálni, mint a másik, mondjuk üres Stringekkel feltöltöd a végét."


Rosszul mondtam. Nem szükséges hogy egy hosszúságúak legyenek, ha nem definiálod a tömbtömb második dimenzióját, így:


String[][] tombtomb = new String[2][];

tombtomb[0] = szavak;

tombtomb[1] = leghosszabbszo;

2019. okt. 10. 12:00
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:
Nekem erre azt irja h szavak cannot be resolved to a variable
2019. okt. 10. 12:16
1 2

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!