Diskuze: Java - metoda join() - dotaz
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


A není to náhodou jeden z úkolů na ITnetworku? (nebo už nevím, těch
tutoriálů jsem dělal tolik, že v tom mám guláš).
Pak bych měl pár výhrad
No a teď tvůj problémek... Nevím, ale když už si hraješ s vlákny, tak
by nemusel být pro tebe takový problém s tím scannerem (obzvlášť, když
píšeš, že ho ovládáš
)
Jednoduše to nahraď třeba přípravou před samotnou logikou prográmku -
aneb 90% úvodních tutoriálů zde na ITnetworku 
Tady máš nejspíš požadované řešení (malinko jsem ti to upravi, jo a
třída se nepíše s malým písmenkem
)
import java.util.Scanner;
public class JoinExample{
public static void main(String[] args) throws InterruptedException {
Scanner scanner = new Scanner(System.in, "Windows-1250");
System.out.println("Zadejte rozmezí od:");
String startText = scanner.nextLine();
int start = startText != null && startText.trim().matches("\\d+") ? Integer.parseInt(startText) : 0;
System.out.println("Zadejte rozmezí do:");
String endText = scanner.nextLine();
int end = endText != null && endText.trim().matches("\\d+") ? Integer.parseInt(endText) : 0;
System.out.println("Začíná výpis čísel");
runThread(new PrintNumbers(start, end));
runThread(new PrintNumbers(1, 20));
runThread(new PrintNumbers(21, 40));
runThread(new PrintNumbers(41, 60));
runThread(new PrintNumbers(61, 80));
runThread(new PrintNumbers(81, 100));
System.out.println("Výpis čísel úspěšně skončil.");
}
private static void runThread(Thread thread) throws InterruptedException {
thread.start();
thread.join();
}
}
class PrintNumbers extends Thread {
private int začátek;
private int konec;
public PrintNumbers(int start, int end) {
this.začátek = start;
this.konec = end;
}
@Override
public void run() {
for (int i = začátek; i <= konec; i++) {
System.out.println(Thread.currentThread().getName() + " - " + i);
}
System.out.println(Thread.currentThread().getName() + " část vpsaná.");
try {
Thread.sleep(850);
} catch (InterruptedException ex) {
}
}
}
A protože se mi líbí, že si kluk šikovná a pracuješ na sobě, tak tady
ti dám jen tak z legrace ukázku jak by sis mohl hrát s vyskakovacími okny
trošku starší technologie
Je to sice swing, ale na rozdíl od FX, tak tyto metody fungují vždy a všude
(zatím tedy ještě).
JOptionPane.showInputDialog() - zobrazí text na ploše
JOptionPane.showInputDialog() - zobrazí okno pro vložení textu
JOptionPane.showConfirmDialog() - zobrazí okno s možnostmi ano/ne
Nahraď si místo scanneru JOptionPane, čili nahraď tyto řádky:
Scanner scanner = new Scanner(System.in, "Windows-1250");
System.out.println("Zadejte rozmezí od:");
String startText = scanner.nextLine();
int start = startText != null && startText.trim().matches("\\d+") ? Integer.parseInt(startText) : 0;
System.out.println("Zadejte rozmezí do:");
String endText = scanner.nextLine();
int end = endText != null && endText.trim().matches("\\d+") ? Integer.parseInt(endText) : 0;
těmito
String startText = JOptionPane.showInputDialog("Zadejte rozmezí od:");
int start = startText != null && startText.trim().matches("\\d+") ? Integer.parseInt(startText) : 0;
String endText = JOptionPane.showInputDialog("Zadejte rozmezí do:");
int end = endText != null && endText.trim().matches("\\d+") ? Integer.parseInt(endText) : 0;
Jo a nediv se, že ti nepůjdou záporné hodnoty. jestli je tam chceš, tak
stačí odmazat ten regex - matches("\\d+").
Tomuhle se říká regulární výraz a konkrétně déčko znamená přirozená
čísla. To plusko neznamená kladné hodnoty, ale že můžeš zadat 1 až
nekonečno znaků
Zobrazeno 3 zpráv z 3.