Syötteen lukeminen Scannerilla
Lue käyttäjän syöte System.in-lähteestä
Syötteen lukeminen Scannerilla on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 4 oppituntia.
Lukeminen näppäimistöltä
Käyttäjän kirjoittaman syötteen lukemista varten Java tarjoaa java.util-paketin Scanner-luokan. Liittäkää se System.in-olioon, joka on vakiomuotoinen syötevirta.
Scanner helpottaa sanojen, rivien ja lukujen lukemista.
Scannerin luominen
Luokaa Scanner välittämällä sille System.in. Näissä esimerkeissä käytetään kiinteitä merkkijonoja, jotta ne toimivat ilman syötettä, mutta samat metodit toimivat myös näppäimistösyötteellä.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("Hello");
String word = scanner.next();
System.out.println(word);
scanner.close();
}
}Yhden sanan lukeminen
next() lukee yhden tunnisteen eli tekstin seuraavaan tyhjämerkkiin asti. Välilyönnit ja rivinvaihdot erottavat tunnisteet toisistaan.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("apple banana cherry");
System.out.println(scanner.next());
System.out.println(scanner.next());
scanner.close();
}
}Koko rivin lukeminen
nextLine() lukee kaiken rivin loppuun asti, välilyönnit mukaan lukien. Käyttäkää sitä, kun syöte sisältää useita yhteen kuuluvia sanoja.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("John Smith");
String fullName = scanner.nextLine();
System.out.println("Name: " + fullName);
scanner.close();
}
}Lisäsyötteen tarkistaminen
hasNext() palauttaa arvon true niin kauan kuin jäljellä on tunnisteita. Näin voitte toistaa silmukkaa, kunnes syöte on käsitelty loppuun.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("red green blue");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();
}
}Lukeminen rivi kerrallaan
Yhdistäkää hasNextLine() ja nextLine(), kun haluatte käsitellä monirivisen syötteen yhden rivin kerrallaan.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("line one\nline two\nline three");
while (scanner.hasNextLine()) {
System.out.println("> " + scanner.nextLine());
}
scanner.close();
}
}Esimerkki oikeasta näppäimistösyötteestä
Varsinaista käyttäjän syötettä varten kirjoittaisitte alla olevat rivit. Kokeilkaa niitä paikallisesti: ohjelma odottaa kohdassa nextLine, kunnes kirjoitatte jotain ja painatte Enter-näppäintä.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter your name: ");
String name = scanner.nextLine();
System.out.println("Hello, " + name);
scanner.close();
}
}Scannerin sulkeminen
Kutsumalla close()-metodia vapautatte resurssin. Siistimpi tapa on try-with-resources-rakenne, joka sulkee scannerin automaattisesti lohkon päättyessä.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (Scanner scanner = new Scanner("data here")) {
System.out.println(scanner.next());
}
}
}next ja nextLine
Muistakaa keskeinen ero: next() pysähtyy tyhjämerkkiin ja palauttaa yhden tunnisteen, kun taas nextLine() lukee nykyisen rivin loppuosan.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("first second third");
System.out.println(scanner.next());
System.out.println(scanner.nextLine());
scanner.close();
}
}Mukautetut erottimet
Voitte muuttaa tunnisteiden erotinta metodilla useDelimiter. Tässä pilkku erottaa arvot toisistaan tyhjämerkkien sijaan.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("a,b,c");
scanner.useDelimiter(",");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();
}
}Scannerin perusteet
Luokaa yksi Scanner kohteelle System.in, käyttäkää next-metodia sanoihin ja nextLine-metodia kokonaisiin riveihin, toistakaa syötettä hasNext-metodiperheen avulla ja sulkekaa scanner aina.
Pikatarkistus
Testatkaa Scannerin perusteiden hallinta.
Kertaus
Opitte lukemaan syötettä Scannerilla:
- Luokaa se komennolla
new Scanner(System.in) next()lukee sanan janextLine()kokonaisen rivin- Toistakaa lukemista metodeilla
hasNext()taihasNextLine() - Sulkekaa scanner metodilla
close()tai try-with-resources-rakenteella useDelimitermuuttaa tunnisteiden erotinta
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Syötteen lukeminen Scannerilla” ilmainen?
Kyllä – oppitunnin ”Syötteen lukeminen Scannerilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Syötteen lukeminen Scannerilla”?
Lue käyttäjän syöte System.in-lähteestä Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Syötteen lukeminen Scannerilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Syötteen lukeminen Scannerilla
- Lukujen ja rivien lukeminen
- Käyttäjän syötteen tarkistaminen
- BufferedReader-vaihtoehto