- Milyen billentyűzetet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Előrendelhető a OnePlus Pad 3
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fejhallgató erősítő és DAC topik
- Milyen processzort vegyek?
- Milyen monitort vegyek?
- Melyik tápegységet vegyem?
- SSD kibeszélő
- Azonnali alaplapos kérdések órája
Új hozzászólás Aktív témák
-
lanszelot
addikt
válasz
axioma #12099 üzenetére
de nem int-et adtam meg.
one, two, three, four, five - ezek az id-k amiket megadtam.itt a progi.
Persze nem így lesz, csak most for -al csináltam, hogy azt is gyakoroljam.
De a for nem jó, for helyett method kell nekem majd.ImageView viewNr[] = new ImageView[5];
int imgId[] = new int[]{R.drawable.one, R.drawable.two, R.drawable.three, R.drawable.four, R.drawable.five, R.drawable.six};
public void kockaAkcio(int v, int r){
switch(r) {
case 0:
viewNr[v].setImageResource(imgId[0]);
break;
case 1:
viewNr[v].setImageResource(imgId[1]);
break;
case 2:
viewNr[v].setImageResource(imgId[2]);
break;
case 3:
viewNr[v].setImageResource(imgId[3]);
break;
case 4:
viewNr[v].setImageResource(imgId[4]);
break;
case 5:
viewNr[v].setImageResource(imgId[5]);
break;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
Random random = new Random();
ImageView imageView1 = findViewById(R.id.Egyes);
ImageView imageView2 = findViewById(R.id.Kettes);
ImageView imageView3 = findViewById(R.id.Harmas);
ImageView imageView4 = findViewById(R.id.Negyes);
ImageView imageView5 = findViewById(R.id.Otos);
Button button01 = findViewById(R.id.Dobas);
button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int[] kockak = new int[5];
int randSzam = random.nextInt(5);
//itt hozom letre a kepek helyenek a valtozot es tombbe rakom tombben
viewNr[0] = imageView1;
viewNr[1] = imageView2;
viewNr[2] = imageView3;
viewNr[3] = imageView4;
viewNr[4] = imageView5;
for (int i =0; i<5; i++){
randSzam = random.nextInt(5);
//itt rakom be a dobast
kockak[i] = randSzam;
//itt hivom a methodot
kockaAkcio(i, randSzam);
}
}
});
} -
axioma
veterán
válasz
lanszelot #12096 üzenetére
Milyen ertelemben nem egesz szam? az egy egesz, pontosabban az adott nyelv int-je (az egeszek egy reszhalmaza) - a rendszer hozzarendelt ahhoz a megadott (kephez, ha jol ertem) egy azonositot, amit ezentul az R.drawable.one uton ersz el. Ha egy masik eleme't erned el a resource osztalynak, akkor annak (jo esellyel) mas tipusa lenne.
Amugy ha most kezd mar osszeallni, akkor tekintsd meg a switch-edet. A dobas 0-5 kimenetelehez rendelsz egy masik szamot, amit elore tudsz. Tehat az egesz kicserelheto arra, hogy csak indexeled oket egy elemeivel definialt tombben:int[] imageIds = new int[] {R.drawable.one, R.drawable.two... };
randszam = ...;
viewNr.setImageResource(imageIds[randszam]);
Igy meg kulon fuggveny se fog kelleni. -
lanszelot
addikt
válasz
axioma #12093 üzenetére
Nagyon szépen köszönöm a segítséget.
Így sikerült:
ImageView viewNr = imageView1;
int imgId = R.drawable.one;
viewNr.setImageResource(imgId);Így már be tudom rakni for ciklusba, tömbbe, method-ba.
Viszont ezzel teljesen felborul az adat tipusok.
Mivel ebben az esetben int nem egész szám.
Ha viszont azt nézem hogyan használja, akkor minden boolean, mert a cpu 0 és 1 -eseket értelmez.
Tehát nem értem hogy int a String, ami nincs idézőjelben. -
válasz
axioma #12093 üzenetére
El fog futni, mert az R.drawable.* az android által generál resource azonosítója lesz.
pl src/drawable/one.png => R.drawable.one
R az android által generált resource osztály, amiben lehet csomó bepakolt resource azonosítója és azon keresztül lehet ezekre hivatkozni. Ezért is lesz int az értéke amit ki lehet debugolni, de amúgy lényegtelen, hogy mi is az.
@lanszelot: Egyszerűbb lenne ha felraknád a kódod valahova, pl github-ra és viszonylag gyorsan meglenne a megfejtés. A hiba pedig amit ír csak szemantikai hiba, nem runtime vagy fordítási. Szerintem rossz helyre másoltad be a kódot vagy ilyesmi.
-
axioma
veterán
válasz
lanszelot #12091 üzenetére
hogy int: hat az int x =5; utan az x is int... de amugy 1. ott az ide, menj az utolso tag [one] fole, nem jon fel buborekban, h mi az? 2. log-old ki az erteket
az R.drawable.one _nem_ string, egy azonosito [ok, egyszerusitve], nem egyezik az "R.drawable.one" stringgel. Igen, backend-es voltam vilag eletemben de hallottam hiret hogy frontend egyes technologiaiban ez csiki-csuki... itt nem [ill. kerulendo, mint korabban angolul is, meg tolem is elhangzott].
csinalj csak ennyit:int imageId = R.drawable.one;
imageView1.setImageResource(imageId);
Ha ez elfut, akkor menjunk tovabb. Ha nem, hibauzenetet mutasd.
[az termeszetesen _nem_ varhato, hogy az imageId -nak barmi koze lesz a 'one'-hoz, lehet h csak nemletezo id-val probaltad, az id nem feltetlen folytonos, sot, az inkabb index nevet kapna] -
lanszelot
addikt
Hello,
Most értem haza és megpróbáltam, de nem müködik:
"error: illegal start of expression public void setImageResourceBasedOnValue(ImageView imageView1, int value) {"talaltam ezt: [link]
De egyik se működik.Jelenleg feladom.
Még tanulok sokat, és hátha későb.
Nagyon negatív irányba tol ez a projct, mert nagyon nem akar sikerülni.
Már nincs kedvem leülni a gép elé se.Nagyon szépen köszönöm a segítségeteket
Magamnak tanulgatok hobbiból, semmi célom vele.
Pár éven át Fron/Backend Dev tanultam. Sok honlapot készítettem magamnak.
Semmi értelmeset, csak ami épp eszembe jutott.
Pár hónapja elkezdtem egy weboldalt, és nagyon beakadtam.
Kerestem tanárt aki adna pár órát, hogy tovább haladjak a projekttel, de senki se vállalt. Igy teljesen leálltam a weboldalakkal, és gondoltam Java/android.
Ez nem igazán jól indul, és az előző miatt meg most ez a tanulás is csak falakat rak elém, így nagyon elszállt a lelkesedésem.
Valami sokkal egyszerűbb projektet kell kitalálnom, hogy legyen valami pozitívum is már. -
lanszelot
addikt
válasz
axioma #12089 üzenetére
Először is köszönöm szépen a választ mindenkinek.
Azt láttam hogy int -et kér.
De ez "R.drawable.one" hogy int?
Int az egész szám.
Az meg String. Az a kép ID megadása. Az id "one" az is string.Most nagyon meg vagyok kavarodva.
Nem tudom hogy adhatok int -et.hoopy: este ha haza érek megpróbálom.
-
válasz
lanszelot #12088 üzenetére
Az
setImageResource
(int) metódusba be tudsz írni egy olyan függvényt, aminek a visszatérési értéke int.
Nem néztem végig a teljes kódod, de valami ilyesmi fog kelleni neked:public void setImageResourceBasedOnValue(ImageView imageView, int value) {
imageView.setImageResource(getDrawable(value));
}
private int getDrawable(int value) {
switch (resourceId) {
case 0:
return R.drawable.one;
case 1:
return R.drawable.two;
default:
return R.drawable.three;
}
}
-
-
lanszelot
addikt
válasz
axioma #12084 üzenetére
Biztonság kedvéért kipróbáltam, de egyik se működik.
Vagy én csinálok valami hülyeséget, vagy nagyon rosszul mondom el.imageView1.setImageResource(R.drawable.one);
Ez a sor szent és sérthetetlen.
Semmit se lehet benne változtatni.
Nem használhatok változót, se kikérést, se függvényt, semmit.imageView1.setImageResource(myFunc())
Tehát ez nem működik. /myFunc()/
Az "R.drawable.ID" -nek kell ott lenni. Semmi mást nem fogad el.
Igen, létre hoztam a method-ot returnnal ami azt a sort adja vissza. Próbáltam rengetegféle képpen, de nem.Vagy nem így kell beírni. Lehet össze kell fűzni.
Php-ban ponttal fűzöm össze, JavaScript -ben +. -erre gondolok.
Tudom, hogy html-t js-el, de nem fogad el semmit.
Valahogy másképp kell. -
axioma
veterán
válasz
lanszelot #12086 üzenetére
a fuggveny/eljaras es ezek angol neve attol fugg, ki mikor es melyik nyelven szocializalodott a programozasba
igen, method-ra gondoltam
Amit az angol nyelvuben irnak, az ket dolog.
1. meg lehet oldani elvben amit elsore lekodoltal (azaz a string alapjan "kiertelmezve" elkerni az objektumot), de nagyon antipattern, tehat azt az iranyt el se kezdtem
2. map-et meg ugy akart, hogy helyette van egy fix map-ed, ami a "one" stringhez hozzarendeli az R.drawable.one objektumot stb, es attol kered el
(de ha kicsit tavolabbrol nezed a kodot, ez a 0-hoz rendeled az obj-ot modon is hasznalhato, az meg csak egy indexeles egy tombben - ide gondoltam hogy idovel eljutunk, csak kisebb lepesekkel) -
lanszelot
addikt
válasz
axioma #12085 üzenetére
Először is köszönöm szépen a segítséget.
Folyamatosan agyalok azon amit írtál.
Van pár dolog amit nem értek.
Nagyon kezdő vagyok valószínűleg azért.fg - ez nem tudom mi. Függvényre gondolnék, de én nem tudok java-ban függvényéről. Method és class -ról tudok csak.
Map az miért lenne jó?
Map az érték párok bevitele, módosítása stb -re jó.
Nekem fix értékek vannak amik sohase változnak, és sohase kell hozzáadni. Minden fix.
Akkor miért lenne jó a map? -
axioma
veterán
válasz
lanszelot #12083 üzenetére
ne a switch-ben set-eld csak
a szamBetuvel mintajara egy objektumnak adj erteketja egybol return jobb
fg-ben az int randszam-tol csakcase 0: return R.drawable.one;
stilus, majd foprog-ban:imageView1.setImageResource(myFunc());
...
imageView5.set...
A map hasznalata me'g korai, ezt bogozd ki es ertsd meg elobb, aztan ki lehet a switch-et o[timalizalni ahogy emlitettem..
[megj. lehet olyat is h forditva, a fg parametere h imageViewN, es annak allitod a switch-ben, de ott me'g kene elobb egy ertek v ref. szerinti atadas gyostalpalo, maradj az egyszerubben programozhatonal]
-
lanszelot
addikt
válasz
axioma #12082 üzenetére
Nagyon szépen köszönöm a segítseget.
Sajnos nincs semmi ami ismétlődne.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
Random random = new Random();
ImageView imageView1 = findViewById(R.id.Egyes);
ImageView imageView2 = findViewById(R.id.Kettes);
ImageView imageView3 = findViewById(R.id.Harmas);
ImageView imageView4 = findViewById(R.id.Negyes);
ImageView imageView5 = findViewById(R.id.Otos);
Button button01 = findViewById(R.id.Dobas);
button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int[] kockak = new int[5];
//elso kocka
int randSzam = random.nextInt(5);
kockak[0] = randSzam;
switch(randSzam) {
case 0:
imageView1.setImageResource(R.drawable.one);
break;
case 1:
imageView1.setImageResource(R.drawable.two);
break;
case 2:
imageView1.setImageResource(R.drawable.three);
break;
case 3:
imageView1.setImageResource(R.drawable.four);
break;
case 4:
imageView1.setImageResource(R.drawable.five);
break;
case 5:
imageView1.setImageResource(R.drawable.six);
break;
}
//masodik kocka
randSzam = random.nextInt(5);
kockak[1] = randSzam;
switch(randSzam) {
case 0:
imageView2.setImageResource(R.drawable.one);
break;
case 1:
imageView2.setImageResource(R.drawable.two);
break;
case 2:
imageView2.setImageResource(R.drawable.three);
break;
case 3:
imageView2.setImageResource(R.drawable.four);
break;
case 4:
imageView2.setImageResource(R.drawable.five);
break;
case 5:
imageView2.setImageResource(R.drawable.six);
break;
}
//harmadik kocka
randSzam = random.nextInt(5);
kockak[2] = randSzam;
switch(randSzam) {
case 0:
imageView3.setImageResource(R.drawable.one);
break;
case 1:
imageView3.setImageResource(R.drawable.two);
break;
case 2:
imageView3.setImageResource(R.drawable.three);
break;
case 3:
imageView3.setImageResource(R.drawable.four);
break;
case 4:
imageView3.setImageResource(R.drawable.five);
break;
case 5:
imageView3.setImageResource(R.drawable.six);
break;
}
//negyedik kocka
randSzam = random.nextInt(5);
kockak[3] = randSzam;
switch(randSzam) {
case 0:
imageView4.setImageResource(R.drawable.one);
break;
case 1:
imageView4.setImageResource(R.drawable.two);
break;
case 2:
imageView4.setImageResource(R.drawable.three);
break;
case 3:
imageView4.setImageResource(R.drawable.four);
break;
case 4:
imageView4.setImageResource(R.drawable.five);
break;
case 5:
imageView4.setImageResource(R.drawable.six);
break;
}
//otodik kocka
randSzam = random.nextInt(5);
kockak[4] = randSzam;
switch(randSzam) {
case 0:
imageView5.setImageResource(R.drawable.one);
break;
case 1:
imageView5.setImageResource(R.drawable.two);
break;
case 2:
imageView5.setImageResource(R.drawable.three);
break;
case 3:
imageView5.setImageResource(R.drawable.four);
break;
case 4:
imageView5.setImageResource(R.drawable.five);
break;
case 5:
imageView5.setImageResource(R.drawable.six);
break;
}
}
});
}
}Másik fórumon ezt írták, de egy szót sem értek belőle /nem az angol miatt/
"Do you want to have a dynamic drawable resource ID? If yes, there is a way to get the ID by the resource name. However, I strongly suggest you think carefully before taking this path. Having a map where you associate static resource IDs with another value might be better." -
axioma
veterán
válasz
lanszelot #12081 üzenetére
azt emeled ki fg-be ami ugyanaz lenne
irdd meg 2-re a 'hosszut'
ami egyforma [szam kitalalas, szambol object switch] az s fg, visszaadja az objektumot, te meg 5x hivod 5 valtozoba setImageResource-olva az eredmenyt [a parameter maga egy fg-hivas]
ha elakadsz, szurd be hogy allsz ne csak meta-beszelgessunk rola -
lanszelot
addikt
válasz
axioma #12080 üzenetére
Pont ez a bajom, hogy nem tudom se függvényében, se for ciklusba tenni.
Mert nem pontosan ugyanazt kell végrehajtani.
Az "imageView" - t és az ID -t is módosítani kell.
De nem tudom, mert se paramétert, se változót nem tudok beletenni.Többel is ugyanaz, kikérést se tudok bele tenni.
Nem tudom hogyan kell. -
lanszelot
addikt
válasz
axioma #12078 üzenetére
Ez jó lenne, de ebben az esetben iszonyat hosszú kódot kell írnom.
Generálok egy szamot,
Switch berakja imageView1 -esbe
Majd
Generálok egy számot
Switch berakja imageView2-esbe
Stb
Mindent 5ször ismétlek.Mint ahogy írtad, majd a végén azt szeretném, hogy for ciklus végig szalad rajta.
De még tanulom, így igaz, hogy ez megoldás, de nem tanulok.
Nem tudom hogy tudok oda változót berakni.
Azért van tömbből a változó, hogy majd tovább haladhassak a tanulással.Elnézést, hogy kuszán írok. Még kezdő vagyok.
-
axioma
veterán
-
lanszelot
addikt
válasz
axioma #12076 üzenetére
Ennyi a kód.
Tanulok. Hogyan lehet változót használni ahelyett hogy én írom be.
Random generál egy számot 0-5 között.
Switch ezt a vectror image nevére át váltja.
Beilleszti az imageView-ba.
Telefonon megjelenik a kép.
Kész.
Semmit se csinál.Még csak most tanulom. Az én agyam nem úgy működik mint az atlagé. Nekem így kell tanulnom.
Tudom fura másoknak. -
lanszelot
addikt
válasz
axioma #12074 üzenetére
Először is köszönöm szépen a választ.
71 es sor - "cannot resolve symbol 'kockak' " hibát dob
Gondolom azért mert idézőjelben rakja be:
"four" nem pedig four.
De ezt csak gondolom.For ciklus azért nem jó, mert "imageView" 1-5 ig van, tehát a végén a számot változtatnom kellene, de azt se tudom hogy kell.
Csak azzal már nem akartam bővíteni a kérdéseim számát.69 sor már nem dob hibát, hogy adtam alap értéket.
Azt sikerült javítani.
"" Értéket adtam a létrehozásnál..Switch-ben a default -ot nem szeretem használni, mert sok galibát tud okozni. Volt már vele szerencsém. Így sokkal egyszerűbb a hibát megtalálni, ha nincs default
-
axioma
veterán
válasz
lanszelot #12073 üzenetére
zold: sztem mert nem ertelmes angol szo
69. hiaba tudod h mindig erteket kap a szamBetuvel, az ott statikus kodelemzes alapjan lehet inicializalatlan
[vagy legyen default ag, vagy a deklaracional irj egy ="" -t, akkor mar csak letezo erteket irsz felul]mit csinalj: ha 5 kockadobas kene, akkor a for ciklusban kene beirni [nem latszik h az-e az a blokk] az eredmenyeket
-
lanszelot
addikt
Hello,
Kezdő vagyok.
Volna pár kérdésem:
- 69 es sorban hogyan kellene csinálnom?
- 71 es sorban hogyan kellene csinálnom?
- 44, 45 ös sorban miért húzza alá zölddel?
Android Studio/Java -
-
-
-
Van érezhető (mérhető) sebesség difi az Open, Zulu, Oracle,... Java verziói között?
Elképzelhető, hogy pl. a Jdownloader más sebességgel tölt, mert más Java motor futtatja? -
Tothg86
tag
Srácok, egy újabb JPA/Hibernate kérdésem lenne. ManyToMany joinnal akadtam el. Van egy működő példám egy ideális (játszós) adatbázisban. Azonban egy létező adatbázisnál nem sikerül alkalmaznom.
Lehet úgy ManyToMany mappinget létrehozni, hogy egyik joinolandó oszlop sem az adott tábla primary key-e? Csak auto incrementes pk-k vannak, amik nem segítenek. Ezért másik oszlopok mentén szeretnék joinolni. Lehetséges ez egyáltalán? Tudom, hogy ManyToOne-nál lehetséges
-
btraven
őstag
java.awt.Color.ORANGE
public static final Color ORANGE
The color orange. In the default sRGB space.MS Paint-ban milyen pixel-t kell ehhez csinálnom, hogy egyezzen?
ARGB 255,255,200,0 pixel egyezik
de miért? ezt sehol nem találom specifikálva?
vagy ki kell debuggolni minden egyes színt?vagy más környezetben más az értéke?
bizonyos környezetben a narancs gyümölccsel egyenlő a default zöldséges standján a piacon? -
floatr
veterán
válasz
Tothg86 #12059 üzenetére
Valahogy így:
@Embeddable
public class AccountId {
private String accountNumber;
private String accountType;
...
}
@Entity
public class Account {
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name="accountNumber", column=@Column(name="account_number")),
@AttributeOverride(name="accountType", column=@Column(name="account_type"))
})
private AccountId id;
...
}az @AttributeOverrides szekciót azért tettem bele, mert ezzel pontosan el tudod nevezni a DB mezőket. A hibernatenek van olyan NamingStrategy-je (jpa/component-path), hogy hajlamos elécsapni a generált neveknek prefixként azt, hogy "id_"
-
Tothg86
tag
válasz
floatr #12058 üzenetére
Köszönöm szépen!
Az az egy nem világos most, hogy egyelőre egy tök szimpla lekérdezéshez, a példában szereplő két mezőt (account number és account type) ugyanúgy kell mappelnem az account osztályban, hogy melyik oszlopban van az adatbázisban? Én úgy szoktam, hogy nem bizom a hibernatere, hanem mindig megadom melyik adatbázis oszlophoz mappelje. -
floatr
veterán
válasz
Tothg86 #12057 üzenetére
Ebben a cikkben leírnak két lehetőséget, de én is használok több munkahelyi projekten összetett kulcsot. Az EmbeddedId-t javaslom, de pár dolgot nem árt észben tartani.
Az ID-t így te adod meg, nem a hibernate generálja. Emiatt egy új rekord mentésénél (save/saveOrUpdate) a hibernate egy selectet fog kiadni, hogy leellenőrizze, van-e már azzal a kulccsal adat a DB-ben. Ezt ki lehet kerülni mondjuk egy EntityManager.persist(...) hívással egy custom repo implementációban, ha te tudod garantálni a PK egyediségét. Ha sok adatot importálsz, problémát tud okozni.
Az ilyen táblák általában kapcsoló/kapcsolatleíró táblák, és az összetett kulcs elemei külső kulcsok (FK), amik más táblákra mutatnak. Ilyenkor a hibernate csak trükközve tudja leírni a relációt másodlagos mappeléssel, vagy a kulcsban mappelt relációval, bár nem mindig van szükség arra, hogy össze tudj kapcsolni kódban is két objektumot. -
Tothg86
tag
válasz
floatr #12056 üzenetére
Köszi!
Egy konkrét kérdésem is lenne.
Van egy munkahelyi tábla, amiben nincsen auto increment ID, nincs semmilyen primary key sem. Szembesültem azzal (ha jól értem), hogy a hibernate megköveteli az egyértelmű azonosítást. Mivel nincs a táblában ID, ezért egy darab azonosítót nem tudok hozzárendelni. Olvastam, hogy van lehetőség összetett kulcs hozzárendélésére az EmbeddedID annotation-nel.
Jól értem? Egy netes példában az volt, hogy egy külön osztályt hozok létre a kulcsnak, és itt jelölöm, hogy @Embeddable. De ez már beleszámít a mappingbe? -
floatr
veterán
-
Tothg86
tag
Sziasztok
Tudtok esetleg egy jó tutorialt Hibernate-hez? Amiket eddig találtam, egyikből sem jutottam közelebb a témához.
Köszönöm!
-
lanszelot
addikt
Hello,
[link]
Ha letekerem a zöld box-ban lévő szöveget, hogyan tudok a tetejére vissza ugrani, ha egy sima szövegre klikkelek.
Nem "a" tag, és nem gomb. -
bucc
csendes tag
sziasztok
PTI-s hallgató vagyok és nagyon nem megy a java, külön óra céljából keresnék prog ban jártas fórumtársat. -
Szmeby
tag
válasz
Taoharcos #12050 üzenetére
Attól függ, milyen eszközzel olvasod fel a fájlt.
Akárhogy is, a fájlban a szöveg byte-ok halmaza, azt valamilyen karakterkészletre kell alakítani felolvasáskor. Akár bytearrayt, akár inputsreamet, akár valamilyen fancy toolt használsz, ami ezekre épül, mindegyikben kell legyen (az értelmesekben legalábbis) olyan opció, ahol megadhatod a charsetet is. Vegyük például a Files::lines metódust ő is vár egy charsetet, megadhatja az, akinek erre van igénye.
A nio StandardCharsets osztályában megtalálod a gyakran használt charseteket, bár mondjuk a latin2 szerintem nincs köztük, de a nio ismeri azt is. Legrosszabb esetben stringként megadod a Charset::forName factory metódusnak és máris van egy charseted, amit használhatsz az olvasásnál. Csak jól írd be a nevét.
Egyébként, ha lehetőséged van rá, inkább pl. UTF8-ban generáld ki azt a csv-t, az sokkal univerzálisabb.
-
Taoharcos
aktív tag
Sziasztok!
Karakter kódolási problémával kapcsolatban kérdeznék.
Java 17 és Spring 3.2 verziókat használok.
Egy Spring Boot-os alkalmazás fejlesztése Windows alatt történik. Egy .csv file-t készít amit le lehet tölteni. Windows helyesen jelenek meg a magyar karakterek. Viszont ha feltelepítem egy hardenelt Ubuntura, akkor a magyar karakterek helytelenül jelennek meg. Elvileg minden már csak UTF8-at használ, de nincs elképzelésem sem, hogy mi lehet a probléma. -
Ablakos
őstag
Sehogy nem bírom a map első generikus típust stringre kényszeríteni. Mindenképpen az Object-et erőlteti. Object típussal működik, de nem értem a pontos megoldást.
Stream<String> input = Files.lines(Paths.get("words.txt"));
Map<String, List<String>> a = // csak Objectként fordul le String helyett
input.map(line -> line.split(" "))
.flatMap(array -> Arrays.stream(array))
.collect(Collectors.groupingBy(d -> d.charAt(0)));
/* .forEach((c, dl) -> {
System.out.print("first character: " + c + " =>");
dl.forEach(d -> System.out.print(d+ ", "));
//System.out.println();
});
*/ -
Ablakos
őstag
Mi a különbség két referencia között new ArrayList vagy anélkül?
Human jenny = new Human(18, "Jenny");
Human jeff = new Human(17, "Jeff");
Human jill = new Human(21, "Jill");
List<Human> people = new ArrayList<>(Arrays.asList(jenny, jeff, jill));
-
lanszelot
addikt
Most vettem észre hogy az java és nem java script. Nem láttam szemüveg nélkül. Bocsánat
-
válasz
lanszelot #12036 üzenetére
Magyar nyelvi kóddal lekérés nem megfelelő? Abban magyarul vannak a description mezők.
[link]lang (optional) – Sets the language of the translatable parts of the output such as the conditions field. Available languages include: ar (Arabic), bg (Bulgiarian), cs (Czech), da (Danish), de (German), el (Greek Modern), en (English), es (Spanish) ), fa (Farsi), fi (Finnish), fr (French), he Hebrew), hu, (Hungarian), it (Italian), ja (Japanese), ko (Korean), nl (Dutch), pl (Polish), pt (Portuguese), ru (Russian),, sr (Serbian), sv (Swedish), tr (Turkish), uk (Ukranian), vi (Vietnamese) and zh (Chinese). In addition passing in ‘id’ will result in the raw descriptor IDs.
pl:
description":"Részben felhős egész nap." -
lanszelot
addikt
Hello,
Segítséget szeretnék kérni.
Csak hobbiból készítettem egy oldalt magamnak ezzel az API -val [link]
Szeretném ha magyarul írna ki mindent, de a google fordító api már nem működik.
Nem találom, hogy milyen mondatokat tartalamzhat, így switch-el nem tudom lecserélni se.
Mar néztem ott a fordítást , de nem a weboldal felöli mondatok vannak az exelben, hanem a kikérő kulcsszavak /aminek nem látom értelmét lefordítani/
Hogyan tudnám megoldani, hogy magyarul írja ki a mondatokat?/pl description: "Partly cloudy throughout the day with rain."
vagy
"Partly cloudy throughout the day with a chance of rain throughout the day."/
Nem naponta váltja, ma már ez nemtudom hanyadik különböző leírás.
De több mindent kell fordítani, nem csak a leírást. -
Ablakos
őstag
válasz
Rat.Sand #12030 üzenetére
Automatic Resource Management
A try utáni zárójelben felsorolt erőforrásokat automatikusan be tudja zárni a JVM. (catch, finally ág nélkül is müködik szintaktikailag)
Elvárás, hogy az itt felsorolt objektumoknak az Closeable() vagy az AutoCloseable interfészt kell implementálni. -
sztanozs
veterán
válasz
Ablakos #12026 üzenetére
Remelem nem gond az angol:
Catch Block
You can add a catch block to a try-with-resources block just like you can to a standard try block. If an exception is thrown from within the try block of a try-with-resources block, the catch block will catch it, just like it would when used with a standard try construct.Before the catch block is entered, the try-with-resources construct will attempt to close the resources opened inside the try block. In case an exception is thrown when attempting to close one of the resources, these exceptions will be available from the exception's getSuppressed() method inside the catch block. Here is an example of a Java try-with-resources block with a catch block attached:
try(AutoClosableResource resourceOne = new AutoClosableResource("One", true)) {
resourceOne.doOp(true);
} catch(Exception e) {
Throwable[] suppressed = e.getSuppressed();
throw e;
} -
Ablakos
őstag
téma: kivételkezelés
Nem értem, hogy miért csak az utolsó except. jelenik meg a konzolon. Hova lesz a resource manager close és a try IOException üzenet?import java.io.Closeable;
import java.io.IOException;public class Animals {
class Lamb implements Closeable {@Override
public void close() throws IOException {
throw new RuntimeException("a");
}
}
public static void main(String[] args) {
new Animals().run();
}
public void run() {
try (Lamb l = new Lamb()) {
throw new IOException();
} catch (Exception e) {
throw new RuntimeException("c");
}
}
} -
Ablakos
őstag
Nagyon nem java, de megpróbálom...
Idézet az OCP-ből
Develop code that declares, implements and/or extends
interfaces and use the @Override annotation (sic*).
Mit akar jelenteni ez a sic a mondat végén? -
Sirpi
senior tag
válasz
Arpee78 #12020 üzenetére
A tömböknek (szándékosan) nincs felülvágva a toString() metódusa, ez amit látsz, kb. a tömb hashCode-ja (az Object osztály implementációja fut le).
Az Arrays.toString tényleg megoldja a problémát, de ha nem teszel bele effortot, akkor valóban nem írja ki emberi módon a tartalmat. Így pl. ajánlás, ha password fieldet kell a backenden metódusok között átpasszolni, akkor char[] legyen a típus és ne String, nehogy véletlenül bekerüljön a jelszó a logba. -
Arpee78
senior tag
válasz
Ablakos #12019 üzenetére
Nem vagyok még teljesen a téma szakértője, valaki biztos szebb választ is tud majd adni, de
Azt hiszem amit kiír az maga a memóriacím ahol a tömböd található, lévén a referencia típusú változók egy referenciát(hivatkozást) tárolnak el.
Az Arrays.toString(tombodValtozoNeve)) amivel megkapod emészthetőbben a tömb tartalmát, vagyis az Arrays osztály toString metódusával.
Ha nem így lenne javítsatok ki.
-
Ablakos
őstag
Egy tömb referencia változó kiíratása konzolra hasonló [I@85ede7b eredményt ad. Valamire (mire) használható ez a hieroglifa?
-
Ablakos
őstag
Van egy osztály (App) ami implementál két interfészt. Mindkét interfésznek van egy ugyanolyan nevű default metódusa.(default void doStuff(){})
Az osztályban hogyan tudom hívni a kívánt default metódust?(new App().doStuff(); természetesen fordítási hibát ad)
-
-
Arpee78
senior tag
Üdv, szerintetek az alábbi feladatot meg lehet oldani jobban, elegánsabban is?
A metódus kap egy egész számokból álló listát, meg kell számolni benn a növekvő sorozatokat. Pl (1, 2, 3, 1, 2, 3, 1) ebben van kettő.
Az én megoldásom:
public int numberOfIncSeries(List<Integer> numbers) {
int count = 0;
boolean inc = false;
for (int i = 1; i < numbers.size(); i++) {
if (numbers.get(i - 1) <= numbers.get(i)) {
inc = true;
} else {
if (inc) {
inc = false;
count++;
}
}
}
count = inc ? count + 1 : count;
return count;
}
-
dudikpal
senior tag
Ezzel kérem le a html contentet:
URL url = new URL(uri);
Eddig működött is (más oldalaknál továbbra is jó), de most 403-at dob pl erre:
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
con.setReadTimeout(5000);
con.setConnectTimeout(5000);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
StringBuffer content = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine + "\n");
}
in.close();
con.disconnect();
https://www.cars-data.com/en/lincoln-continental-specs/59792/tech
Viszont postmanből sima get-tel jön a content, még http request-ből is (.http), de így kódból meg nem. Gondoltam rá lett dobva 1 nem vagyok robot captcha vagy vmi, de akkor request fileból meg postmanből sem kéne jönnie, nem? -
btraven
őstag
Valaki kitalálja miért?
[link] libgdx Colorint x = 1 + 255;
Color color = new Color(x);
print(color);
= 0x00000100;Hát én 0x000001FF -re számítottam.
new Color(0f, 0f, 1f/255f, 1f); - ez jó
-
Drizzt
nagyúr
válasz
btraven #12008 üzenetére
Ha kifejezetten méretre lősz és nem muszáj JDK only megoldást adni, akkor lehet jobban jársz, ha valamilyen cél library-t használsz. Némi összehasonlítás: [link] Főleg a 3.4 performance az érdekes.
Btw: Nagyban függ attól, hogy mi egyéb van még az osztályokban, ha csak egész számok, akkor hány darab, etc. De ha nagyon optimalizálni akarsz méretre, akkor lehet nem is magát a classt kéne szerializálni, mert az nyilván hoz magával mindenféle metadatát, ami tuti sokat fogyaszt. -
btraven
őstag
Ha rengeteg objektumot írok ki serializálva a tárolóra akkor jobb byte field-eket használni az osztályban használni mint int-et?
Elvileg negyede lesz a fájl mérete? -
btraven
őstag
Android Studio erre miért nem jelez hibát?
class Nation
private final List<League> leagues = new ArrayList<>();
class League
private List<Integer> teamIds = new ArrayList<>();Team promotedTeam = statActor.getAscendingTeam();
nation.getLeagues().get(downLeague).getTeamIds().remove(promotedTeam);
-
válasz
Taoharcos #12005 üzenetére
Futásidőben nem tudsz. Viszont induláskor tudsz neki beadni portszámot: itt
Illetve a propertiesben a server.port=0 egy random portot választ.Kerülőmegoldásokkal biztos megoldható az is, hogy induláskor a TCP portot először ellenőrzöd és ha foglalt növeled és azt adod be neki a main függvényben. (TestSocketUtils-nak talán van egy ilyen from-to port scan metódusa)
Bár prod környezetben érdekes megközelítés nem statikus vagy teljesen random portot használni.
-
Taoharcos
aktív tag
Sziasztok.
Spring Boot-ban lehet futás közben dinamikusan állítani a port-ot?
Vagy induláskor ha foglalt eggyel nagyobb port számot választani amin induljon?
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- Eredeti DELL 240W töltők (LA240PM160)
- iKing.Hu - Apple iPhone 13 Pro Max - Graphite - Használt, újszerű
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RX 7600XT 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B550 R7 5700X 32GB DDR4 500GB SSD RTX 3070 8GB ZALMAN Z1 Plus Be quiet! 650W
- LG 27GR95QE - 27" OLED / QHD 2K / 240Hz & 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged