- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- Apple MacBook
- Google Chromecast topic
- Projektor topic
- Napokon belül váratlan versenyzővel bővül a VGA-piac
- Kezdő fotósok digitális fényképei
- Új Intel CPU-kkal jön a Surface Pro 12 és a Surface Laptop 8 for Business
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
- HiFi műszaki szemmel - sztereó hangrendszerek
- Házimozi belépő szinten
- Milyen egeret válasszak?
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
bucsupeti
senior tag
Do-while-lal oldottam meg végül, köszi.
public static void kaloriaKiir(ArrayList<Gyumolcs> ertekek, File f) {
Scanner scan = new Scanner(System.in, "ISO-8859-2");
System.out.println("Kérem a gyümölcs nevét: ");
String nev = scan.nextLine();
do {
if (!gyum.toString().contains(nev)) {
System.out.println("Nem megfelelő név, újat kérek!");
nev = scan.nextLine();
}
} while (!gyum.toString().contains(nev));
if (gyum.toString().contains(nev)) {
System.out.println("Kérem a mennyiséget grammban: ");
int menny = scan.nextInt();
for (Gyumolcs gyum : ertekek) {
if (nev.equals(gyum.Megnevezes)) {
System.out.println(menny + " gramm " + gyum.Megnevezes + " " + gyum.kcal / 100 * menny + " gramm kalóriát tartalmaz.");
}
}
}
}Biztos sok sok furcsaság van a kódban, de most a cél átmenni a vizsgán.
![;]](//cdn.rios.hu/dl/s/v1.gif)
A static metódus arra enged következtetni hogy valószínű ugyan abban az osztályban van ez a kaloriaKiir metódus amiben a main() és azért static hogy tudd meghívni a main-ben.
Lehet hogy a vizsgára amire készülsz ez jó és elegendő. Én a következő osztályokkal dolgoznék:
Gyumolcs : egyetlen gyümölcs adatait tároló POJO osztály. semmi extra metódus nem kell ebbe. Max a toString-et írd felül hogy az objektum értékeit adja vissza.
KaloriaTabla : lenne benne egy ArrayList<Gyumolcs> lista, egy adatbeolvasó metódus ami feltöltené ezt a listát. Konstruktorba feltölteném a listát. Kell egy kereső metódus ami egy string alapján keres a listában a gyümölcs neve alapján és Gyumolcs-öt adnék vissza, vagy null-t ha nincs. (Ez az osztály lehetne akár singleton is, ha már tanultátok)
A futtató osztályban (amiben a main() van), megírnám a felhasználói felületet, menüt, a névbekérést stb. Itt példányosítanám a KaloriaTabla-t és ennek a kereső metódusát hívogatnám.
Igaza van Sirpi kollégának abban hogy a contains használata nem a legjobb megoldás. Ha contains-t használsz akkor kezeld úgy hogy nem csak egy hanem több gyümölcsöt is kaphatsz eredményül, és ilyenkor minden találatot jeleníts meg. -
Sirpi
senior tag
Do-while-lal oldottam meg végül, köszi.
public static void kaloriaKiir(ArrayList<Gyumolcs> ertekek, File f) {
Scanner scan = new Scanner(System.in, "ISO-8859-2");
System.out.println("Kérem a gyümölcs nevét: ");
String nev = scan.nextLine();
do {
if (!gyum.toString().contains(nev)) {
System.out.println("Nem megfelelő név, újat kérek!");
nev = scan.nextLine();
}
} while (!gyum.toString().contains(nev));
if (gyum.toString().contains(nev)) {
System.out.println("Kérem a mennyiséget grammban: ");
int menny = scan.nextInt();
for (Gyumolcs gyum : ertekek) {
if (nev.equals(gyum.Megnevezes)) {
System.out.println(menny + " gramm " + gyum.Megnevezes + " " + gyum.kcal / 100 * menny + " gramm kalóriát tartalmaz.");
}
}
}
}Biztos sok sok furcsaság van a kódban, de most a cél átmenni a vizsgán.
![;]](//cdn.rios.hu/dl/s/v1.gif)
Ez a rész háromszor is szerepel: gyum.toString().contains(nev)
Egyrészt a harmadik automatikusan teljesülni fog, elhagyható, egyetlen vizsgálat is elég. Másrészt gondolom az elso gyum helyett az ertekek változót akartad használni, így az értékek.contains(nev) pont az, amire szükséged van, sőt, a toString-ezés miatt ha akár egyetlen betűt írsz be, ami a felsorolt gyümölcsök valamelyikében szerepel, azt is el fogja fogadni, nem néz teljes egyezést. Kicsit egyszerűsítve:
public static void kaloriaKiir(List<Gyumolcs> ertekek) {
Scanner scan = new Scanner(System.in, "ISO-8859-2");
System.out.println("Kérem a gyümölcs nevét: ");
String nev;
while (!ertekek.contains(nev = scan.nextLine())) {
System.out.println("Nem megfelelő név, újat kérek!");
}
System.out.println("Kérem a mennyiséget grammban: ");
int menny = scan.nextInt();
for (Gyumolcs gyum : ertekek) {
if (nev.equals(gyum.Megnevezes)) {
System.out.println(menny + " gramm " + gyum.Megnevezes + " " + gyum.kcal / 100 * menny + " gramm kalóriát tartalmaz.");
}
}
} -
Drizzt
nagyúr
Hölgyek/Urak!
Programozás vizsgára készülök, az egyik feladatnál megakadtam.
Csv file-ból kellett adatokat beolvasni ArrayListbe, aztán mindenféle metódusokat gyártani rá. A csv file-ban gyümölcsök nevei (pl. alma, körte, stb) és hozzájuk tartozó adatok vannak, többek között a kalória.
A feladat az, hogy a metódus kérje be a felhasználótól a gyümölcs nevét és a mennyiséget, és ez alapján mondja meg, hogy az adott mennyiségű gyümölcs hány kalóriát tartalmaz.
Megcsináltam a metódust, azt szeretném elérni, hogy ha a felhasználó rossz nevet ír be (ami nem szerepel az ArrayListben), akkor addig kérje, amíg jót nem ad (jelen állás szerint ha rossz nevet ír be a felhasználó, leáll a program).
Itt a kód:
public static void kaloriaKiir(ArrayList<Gyumolcs> ertekek, File f) {Scanner scan = new Scanner(System.in, "ISO-8859-2");System.out.println("Kérem a gyümölcs nevét: ");String nev = scan.nextLine();if (gyum.toString().contains(nev)) {System.out.println("Kérem a mennyiséget grammban: ");int menny = scan.nextInt();for (Gyumolcs gyum : ertekek) {if (nev.equals(gyum.Megnevezes)) {System.out.println(menny + " gramm " + gyum.Megnevezes + " " + gyum.kcal / 100 * menny + " gramm kalóriát tartalmaz.");}}} else {System.out.println("Nem megfelelő név!");}}Van valami ötletetek?
Bulizhatz rekurzioval: az utolso else agban meghivhatod a kaloriaKiirt megegyszer.
Bulizhatsz do-while ciklussal: do... while (beolvasott szo nem gyumolcs).Amugy van sok furcsasag a kododban. Lehet csak a tableten nem latom, de mi szukseged van a File f parameterre? Mi a gyum, honnan jon az extended for loop elott. Van egy static String gyumod az osztalyban valamilyen ertekkel?
-
bandi0000
nagyúr
Hölgyek/Urak!
Programozás vizsgára készülök, az egyik feladatnál megakadtam.
Csv file-ból kellett adatokat beolvasni ArrayListbe, aztán mindenféle metódusokat gyártani rá. A csv file-ban gyümölcsök nevei (pl. alma, körte, stb) és hozzájuk tartozó adatok vannak, többek között a kalória.
A feladat az, hogy a metódus kérje be a felhasználótól a gyümölcs nevét és a mennyiséget, és ez alapján mondja meg, hogy az adott mennyiségű gyümölcs hány kalóriát tartalmaz.
Megcsináltam a metódust, azt szeretném elérni, hogy ha a felhasználó rossz nevet ír be (ami nem szerepel az ArrayListben), akkor addig kérje, amíg jót nem ad (jelen állás szerint ha rossz nevet ír be a felhasználó, leáll a program).
Itt a kód:
public static void kaloriaKiir(ArrayList<Gyumolcs> ertekek, File f) {Scanner scan = new Scanner(System.in, "ISO-8859-2");System.out.println("Kérem a gyümölcs nevét: ");String nev = scan.nextLine();if (gyum.toString().contains(nev)) {System.out.println("Kérem a mennyiséget grammban: ");int menny = scan.nextInt();for (Gyumolcs gyum : ertekek) {if (nev.equals(gyum.Megnevezes)) {System.out.println(menny + " gramm " + gyum.Megnevezes + " " + gyum.kcal / 100 * menny + " gramm kalóriát tartalmaz.");}}} else {System.out.println("Nem megfelelő név!");}}Van valami ötletetek?
rakj bele egy while ciklust 1.0 verziónak jó, nem tudom van e erre kifinonultabb beépített lehetősêg
-
floatr
veterán
-
floatr
veterán
Olyant is csinálhatsz amúgy, hogy egy stringbe betolod az összes magánhangzót, és indexOf metódussal ránézel. Ha optimalizálni akarod, akkor sorba rendezett karakterekkel logaritmikus kereséssel is mehet

Amúgy meg:
String text = ...; // a beolvasott cucc
long vowelCount = text.toLowerCase()
.chars()
.filter(c -> "aáeéiíoóöőuúüű".indexOf((char) c) != -1)
.count();
-
Froclee
őstag
Elég puritán lett.
![;]](//cdn.rios.hu/dl/s/v1.gif)
package gyak27;
import java.util.Scanner;
public class Gyak27 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in, "8859_2");
String vers;
System.out.println("Kérem a versrészletet: ");
vers = scan.nextLine();
int számláló = 0;
for (int i = 0; i < vers.length(); i++) {
if (vers.charAt(i) == 'a' || vers.charAt(i) == 'á'
|| vers.charAt(i) == 'e' || vers.charAt(i) == 'é'
|| vers.charAt(i) == 'i' || vers.charAt(i) == 'í'
|| vers.charAt(i) == 'o' || vers.charAt(i) == 'ó'
|| vers.charAt(i) == 'ö' || vers.charAt(i) == 'ő'
|| vers.charAt(i) == 'u' || vers.charAt(i) == 'ú'
|| vers.charAt(i) == 'ü' || vers.charAt(i) == 'ű'
|| vers.charAt(i) == 'A' || vers.charAt(i) == 'Á'
|| vers.charAt(i) == 'E' || vers.charAt(i) == 'É'
|| vers.charAt(i) == 'I' || vers.charAt(i) == 'Í'
|| vers.charAt(i) == 'O' || vers.charAt(i) == 'Ó'
|| vers.charAt(i) == 'Ö' || vers.charAt(i) == 'Ő'
|| vers.charAt(i) == 'U' || vers.charAt(i) == 'Ú'
|| vers.charAt(i) == 'Ü' || vers.charAt(i) == 'Ű') {
számláló++;
}
}
System.out.println("A magánhangzók száma a szövegben: " + számláló);
}
}Ahogy floatr írta,így azért szebb,
-
bandi0000
nagyúr
Mondom az elsőre szerintem a leggyorsabb a dupla for, bár biztos van rá jobb megoldás, azt gondolom azért tudod, hogy mi
Bár ha if-else-el kell megcsinálni akkor azzal -
bandi0000
nagyúr
Hölgyek/Urak!
Elsőéves egyetemistaként ismerkedünk a Java programozás alapjaival. Van egy szép hosszú minta feladatsorom amin lépkedek, de van egy-kettő amivel nem igazán tudok elindulni és egyelőre a neten sem találtam sok használhatót, nevezetesen:
Kérjünk be a felhasználótól egy versrészletet, és számláljuk meg benne a magánhangzókat!Kérjünk be ellenőrzötten a felhasználótól egy-egy egytizedes jegyű, kéttizedes jegyű, háromtizedes jegyű és négytizedes jegyű számot! Írassuk ki egymás alá balra, majd jobbra igazítva is a négy számot 10 karakterhosszan 4 tizedesjeggyel!
A program a felhasználó által megadott együtthatókkal számítsa ki a másodfokú egyenletet! Negatív diszkrimináns esetén adja meg a komplex gyököket!
Valami ötlet merre induljak? A
printf és az if/elseszekcióban vannak a feladatok, így azt gondolom ezekkel kellene megoldani, a félév során egyébként az osztályokig jutottunk.Első résznél biztos van egyszerűbb megoldás, de nekem hirtelen egy dupla for ugrik be, létrahozol egy String változót, amibe belerakod egy szövegként a magánhangzókat, külső forral ezen mész végig, a belső forban meg a vers részleten, és ellenőrzöd, hogy egyeznek e, ha igen, akkor növelsz egy számlálót
Másodikra talán ez segít
Harmadiknák meg mi nem világos? igazából csak elvégzed a műveleteket, esetleg annyi, hogy a gyök alatti kifejezést ellenőrzöd, hogy - lett e, ha igen, akkor beszorzod -1-el, gyököt vonsz, és kiíratásnál még hozzáírsz egy j-t a végére
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Apple MacBook
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Robogó, kismotor
- MasterDeeJay: Low budget (50.000 forint) light gémer gép összerakása
- gban: Ingyen kellene, de tegnapra
- A fociról könnyedén, egy baráti társaságban
- Mobil flották
- One mobilszolgáltatások
- Google Chromecast topic
- Crypto Trade
- További aktív témák...
- Fujitsu LIFEBOOK E459 I3-8130U 8 GB 256 GB NVMe 15,6" FullHD laptop
- HP ProBook 450 G8 I3-1115g4 8 GB 256 GB NVMe 15,6" FullHD IPS laptop
- Lenovo Thinkpad T14 G2 Ryzen 3 5450u/16GB/256 GB SSD/14"FHD gyári gar
- HP Elite x2 G4 I5-8265U/8 GB RAM/256 SSD/3k IPS TOUCH 2in1 laptop és tablet
- Új MSI 16 Sword WUXGA 144Hz i7-14650HX 5.2Ghz 16mag 16GB 1TB SSD Nvidia RTX 4070 8GB Win11 Garancia
- BESZÁMÍTÁS! Asus Z370A i7 9700 16GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Adata 600W
- ASUS TUF A14 Gaming Notebook! Ryzen AI HX 370 / RTX 4050 / 16GB DDR5 / 1TB NVMe! BeszámítOK!
- Keresünk iPhone 15/15 Plus/15 Pro/15 Pro Max
- AKCIÓ! Lenovo LOQ 15AHP10 FHD GAMER notebook - Ryzen7 250 16GB DDR5 1TB SSD RTX 5060 8GB
- Samsung 990 PRO 4TB M.2 Heatsink SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

![;]](http://cdn.rios.hu/dl/s/v1.gif)







