Java의 출력
JavaScript의 console.log와 비슷한 기능이라고 생각하면 쉽다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class Main {
public static void main(String[] args) {
//println은 출력과 동시에 줄을 바꾼다.
System.out.println("One");
System.out.println("Two");
//print는 단순히 출력을 한다.
System.out.print("one");
System.out.print("Two");
//printf는 출력과 서식을 지정 할 수있다.
System.out.printf("\n%d, %d\n", 1, 2);
};
};
|
cs |
Java는 JavaScript와는 다르게 클래스(class) 객체 지향 언어이다. 또한 JavaScript의 클래스를 사용할 때와 마찬가지로 class 객체는 대문자를 사용한다.
Java의 입력
JavaScript의 prompt와 비슷한 기능을 수행한다고 생각하면 쉽다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
// 스캐너(Scanner) 클래스를 불러온다.
Scanner scanner = new Scanner(System.in);
// int를 입력받을 때는 nextInt(); 메서드를 사용한다.
int a, b;
a = scanner.nextInt();
b = scanner.nextInt();
System.out.println(a + "," + b);
// 10, 20을 입력 -> 10, 20 출력
// char을 입력받을 때는 (char)System.in.read(); 메서드를 사용한다.
char c;
c = (char)System.in.read();
System.out.println(c);
// A를 입력 -> A 출력
// char을 여러개 입력받을 때는 nextLine(); 메서드를 사용한다.
char d, e;
String str;
str = scanner.nextLine();
d = str.charAt(0);
e = str.charAt(2);
System.out.println(str);
System.out.println(d + "," + e);
// abcdefg을 입력 -> abcdefg, a, c 출력
scanner.close();
};
};
|
cs |
Java에서 출력을 할 때는 Scanner 클래스를 불러와서 입력을 받게 만든다.
Java에서 입출력 함수를 사용할 때 몇가지 주의할 점이 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 스캐너(Scanner) 클래스를 불러온다.
Scanner scanner = new Scanner(System.in);
// int를 받을 경우 두 줄로 입력받아도 문제가 없다.
int a, b;
a = scanner.nextInt();
b = scanner.nextInt();
System.out.println(a + ","+ b);
// nextInt();외에도 nextShort();, nextShort();, nextLong();, nextDouble();, nextFloat();등을 사용할 수 있다.
// 문자를 받을 경우 두 줄로 입력받을 수 없다.
char c, b;
c = (char)System.in.read();
d = (char)System.in.read();
System.out.println(c, + "," + d);
// 첫 문자를 입력하고 엔터를 누르면 \n(개행) 값이 들어가기 때문이다.
scanner.close();
};
};
|
cs |
문자의 경우는 여러줄을 받는 경우 위에서 여러개를 입력받는 코드와 같이 nextLine(); 메서드를 이용해서 '한 줄씩' 읽어서 처리하게 해야한다.
*next(); : \n(개행)을 무시하고 입력을 받는다. 따라서 입력하고 엔터를 누를 때 엔터를 입력하기 전까지만 입력을 받는다.
*nextLine(); : 한 줄 단위로 입력을 받기 때문에 \n(개행)도 한 줄로 인식한다.
Scanner 클래스
앞서 설명한 입력에 관련된 Java의 클래스이다. Scanner 클래스는 정수, 실수 그리고 문자열을 입력 받을 수 있다.
Scanner 클래스를 사용하기 위해서는 먼저 import를 통해 외부의 클래스를 호출해야 한다. Scanner 클래스는 java.util 패키지에 포함되어 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// 스캐너 클래스를 외부에서 import한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 스캐너(Scanner) 클래스를 불러온다.
// 스캐너 객체를 생성하는 과정이기도 하다. 'System.in'은 입력한 값을 byte 단위로 읽는 것을 말한다.
Scanner scanner = new Scanner(System.in);
// 스캐너 클래스를 닫는다.
scanner.close();
};
};
|
cs |
위의 코드가 Scanner 클래스의 기본적인 형태이다. 맨 아래의 scanner.close();는 쓰지 않으면 경고가 출력되나 문제는 없다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// 스캐너 클래스를 외부에서 import한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 스캐너(Scanner) 클래스를 불러온다.
// 스캐너 객체를 생성하는 과정이기도 하다. 'System.in'은 입력한 값을 byte 단위로 읽는 것을 말한다.
Scanner scanner = new Scanner(System.in);
String name;
int math;
System.out.print("이름?");
name = scanner.next();
// nextLine();을 사용할 시 한 줄을 전부 읽는다.
System.out.print("수학 점수?");
math = scanner.nextInt();
System.out.println(name + " : " + math);
// 스캐너 클래스를 닫는다.
scanner.close();
};
};
|
cs |
문자 하나를 입력하려면 scanner.next().charAt(0);을 사용하면 된다. Java에서 문자를 입력받을 때는 보통 next();나 nextLine();으로 문자열을 입력받는다.
*next();를 사용시 공백을 기준으로 출력을 한다. 예시로 '서울특별시 강남구'를 입력시 '서울특별시'만 인식한다. 따라서 공백이 포함될 여지가 있다면 nextLine();을 사용해야 한다.
'프로그래밍 공부 > Java' 카테고리의 다른 글
Java - 반복문으로 별찍기 예제 (0) | 2020.01.23 |
---|---|
Java - 반복문 (0) | 2020.01.21 |
Java - 조건문 (0) | 2020.01.21 |
Java - 연산자 (0) | 2020.01.21 |
Java - 데이터 타입과 기초 (0) | 2020.01.21 |