해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.
import java.util.Scanner;
public class Ex01 {
public static void main(String[] args) {
// IDE가 최상단에 import java.util.Scanner 자동 작성
Scanner sc = new Scanner(System.in);
}
Scanner 변수명 = new Scanner(System.in);
▶ Scanner : 키보드 입력이나 파일 등로부터 텍스트 값을 받아오기 위한 클래스
▶System.in : InputStream 의 인스턴스, 입력받은 값들의 흐름
문자열 받기
▶ next : 스페이스를 비롯한 공백 단위로 끊어서 (토큰으로) 문자열을 받음
▶nextLine : 줄바꿈 단위로 끊어서 문자열을 받음
import java.util.Scanner;
public class Ex01 {
public static void main(String[] args) {
// IDE가 최상단에 import java.util.Scanner 자동 작성
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
String str2 = sc.next();
String str3 = sc.nextLine();
System.out.println("str1: " + str1);
System.out.println("str2: " + str2);
System.out.println("str3: " + str3);
}
}
기타 자료형 받기
▶next자료형()
import java.util.Scanner;
public class Ex02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean bool = sc.nextBoolean();
int intNum = sc.nextInt();
double dblNum = sc.nextDouble();
// 🧪 기타 next~ 메서드들 확인해 볼 것
System.out.println("bool: " + bool);
System.out.println("intNum: " + intNum);
System.out.println("dblNum: " + dblNum);
}
}
▶ hasNext자료형() : 다음 입력값이 특정 자료형으로 읽힐 수 있는지 확인하여 불리언값 반환
▶ close() : 스캐너의 사용이 끝나면 os자원 반환. 파일 등으로부터 읽어오는데 사용시 필수.
import java.util.Scanner;
public class Ex03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("불리언을 입력해주세요.");
// 💡 다음 입력값이 특정 자료형으로 읽힐 수 있는지 확인
while (sc.hasNextBoolean()) {
// 💡 대소문자 무관 비교
System.out.println("입력값: " + sc.nextBoolean());
}
// ⭐ 스캐너의 사용이 끝나면 OS자원을 반환
// 파일 등으로부터 읽어오는데 사용시 필수
sc.close();
}
}
▶hasNext()
▶hasNextLine()
import java.util.Scanner;
public class Ex03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("단어를 입력해주세요.");
while (sc.hasNext()) {
String nextWord = sc.next();
if (nextWord.equalsIgnoreCase("quit")) break;
System.out.println("입력값: " + nextWord);
}
System.out.println("문장을 입력해주세요.");
while (sc.hasNextLine()) {
String nextSentence = sc.nextLine();
if (nextSentence.equalsIgnoreCase("quit")) break;
System.out.println("입력값: " + nextSentence);
}
sc.close();
}
}
import java.util.Scanner;
public class Ex04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int repeatCount = sc.nextInt();
// ⚠️ nextInt를 아래에서 바로 사용하면 루프마다 받음
// repeatCount 변수에 담은 이유
for (int i = 0; i < repeatCount; i++) {
// 💡 print (ln이 붙지 않은) : 같은 줄에 이어 출력
System.out.print("호우 ");
}
System.out.println("");
}
sc.close();
}
}
import java.util.Scanner;
public class Ex04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 문자열 바로 입력하여 사용하기
String [] strInputs = new String [5];
for (int i = 0; i < strInputs.length; i++) {
strInputs[i] = sc.nextLine();
}
sc.close();
for (String str : strInputs) {
System.out.println(str);
}
}
}