Weboldalunk cookie-kat használhat, hogy megjegyezze a belépési adatokat, egyedi beállításokat, továbbá statisztikai célokra és hogy a személyes érdeklődéshez igazítsa hirdetéseit. További információ
Főoldal Belépés/Regisztráció Egy véletlen kérdés Facebook






Kategória: Számítástechnika » Programozás

A kérdés

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

Az lenne a feladat, hogy az elso tomb 1 dimenziojaba a szavak, a masodikba pedig a leghosszabb szo keruljon..

Keress kérdéseket hasonló témákban: Java, programozás

  okt. 9. 22:23  Privát üzenet  

A válaszok
1 2
A kérdező kommentje:

Java programnyelven

# 1/11Időpont okt. 9. 22:24 Privát üzenet

?


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.



A válaszíró 69%-ban hasznos válaszokat ad.
# 2/11Időpont okt. 9. 22:29 Privát üzenet
Hasznos számodra ez a válasz?
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.



# 3/11Időpont okt. 9. 22:40 Privát üzenet
S. Nikolas Nick nevű felhasználó válasza:

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.



A válaszíró 75%-ban hasznos válaszokat ad.
# 4/11Időpont okt. 10. 00:18 Privát üzenet
Hasznos számodra ez a válasz?
Minden elválasztó lehet, ami nem betű :)

A válaszíró 70%-ban hasznos válaszokat ad.
# 5/11Időpont okt. 10. 04:22 Privát üzenet
Hasznos számodra ez a válasz?
A kérdező kommentje:

És hogy kezdjem el ellenőrizni szavanként, ha egy szovegem van szavanként?

# 6/11Időpont okt. 10. 09:56 Privát üzenet
A kérdező kommentje:

Med hogyan tudom amugy is belerakni a szavakat a tomb elso dimenziojaba?

# 7/11Időpont okt. 10. 10:15 Privát üzenet

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.



A válasz 100%-ban hasznosnak tűnik. A válaszíró 65%-ban hasznos válaszokat ad.
# 8/11Időpont okt. 10. 11:42 Privát üzenet
Hasznos számodra ez a válasz?

"É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;



A válaszíró 65%-ban hasznos válaszokat ad.
# 9/11Időpont okt. 10. 12:00 Privát üzenet
Hasznos számodra ez a válasz?
A kérdező kommentje:

Nekem erre azt irja h szavak cannot be resolved to a variable

# 10/11Időpont okt. 10. 12:16 Privát üzenet
1 2

Értesítsünk róla, ha új válasz érkezik? Válasz küldése



Kapcsolódó kérdések
Adott egy feladat, olyan programot kéne írni ami konzolról kapott mondatot eltárol egy 2d tömbben, annyi sor kell legyen ahány szóból áll a mondat és annyi oszlop kell legyen...
Txt fájlban levő szöveg beolvasása és annak érték adás lehetséges?
Hogy lehet számból szöveget csinálni Excelben?
C# nyelven hogyan tudok stringet floattá konvertálni?
Van olyan framework, amivel szöveg alapú játékot lehetne egyszerűbben csinálni webre?
Egy szöveg alapú RPG-t szeretnék csinálni webre, viszont néhány dolgot nem értek?

Kérdések a Számítástechnika rovatbólKérdések a Programozás rovatból








Minden jog fenntartva © 2019, www.gyakorikerdesek.hu | GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | WebMinute Kft. | 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!