#1010 [기초-입출력] 정수 1개 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(n);
}
}
사용자의 입력을 받기 위해서 쓰는 Scanner 클래스를 사용한다.
1) 현재 클래스 외부에 있는 Scanner 클래스 import 하기
import java.util.Scanner;
2) Scanner 객체 생성하기
Scanner sc = new Scanner(System.in);
3) 생성한 객체에서 제공하는 .next(); 메서드를 통해서 값을 받아오기
sc.nextInt();
#1011 [기초-입출력] 문자 1개 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.nextLine();
System.out.println(x);
}
}
Scanner 클래스의 nextInt(), nextDoble(), nextFloat() 등 메서드는 리턴 타입에 따라서 메서드가 달라진다.
1011 문제처럼 String을 리턴하는 메서드 -> next(), nextLine()
next() 의 경우에는, 공백이 포함되지 않은 문자열을 입력할 때 사용
nextLine()은 공백이 포함된 문자열을 입력할 때 사용
next()를 사용하여 띄어쓰기를 하면 현재 입력이 끝난다.
nextLine()은 엔터를 눌러야지만 현재 입력이 끝난다.
nextInt(), nextDoble, nextFloat() 등의 리턴타입이 정해진 입력 메서드 -> 공백이 포함되지 않은 경우에 사용
#1012 [기초-입출력] 실수 1개 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Float x = sc.nextFloat();
System.out.printf("%f",x);
}
}
-println( )과 printf( ) 비교
1. println( ) 메소드 : 실수의 자릿수 조절이 불가능하고, 10진수로만 출력된다. (자동 줄바꿈 지원)
2. printf( ) 메소드 : 지시자를 사용하여 자릿수 조절이 가능하고, 8진수와 16진수로 지정 출력 가능하다.
- printf( ) 지시자 종류
(정수, 실수)
%b 불리언(boolean) 형식 출력 %d 10진 정수의 형식 출력 %o 8진 정수의 형식 출력 %x, %X 16진 정수 형식 출력 %f 부동 소수점 형식 출력 %e, %E 지수 표현식의 형식 출력 %c 문자로 출력 %s 문자열로 출력
#1013 [기초-입출력] 정수 2개 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a, b;
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
b = sc.nextInt();
System.out.printf("%d %d", a, b);
}
}
printf( )는 println( )과 다르게 자동 줄바꿈이 안되므로 %n을 사용한다.
-> "%d%n%d" 로 작성하면 줄바꿈 되어 출력됨
#1014 [기초-입출력] 문자 2개 입력받아 순서 바꿔 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String a, b;
Scanner sc = new Scanner(System.in);
a = sc.next();
b = sc.next();
System.out.printf("%s %s", b, a);
}
}
#1015 [기초-입출력] 실수 입력받아 둘째 자리까지 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
float a = sc.nextFloat();
System.out.printf("%.2f", a);
}
}
#1017 [기초-입출력] 정수 1개 입력받아 3번 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.printf("%d %d %d",a,a,a);
}
}
#1018 [기초-입출력] 시간 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
System.out.printf("%s" ,a);
}
}
#1019 [기초-입출력] 연월일 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String[] aNum = a.split("\\.");
int year = Integer.parseInt(aNum[0]);
int month = Integer.parseInt(aNum[1]);
int day = Integer.parseInt(aNum[2]);
System.out.printf("%04d.%02d.%02d",year,month,day);
}
}
입력받은 날짜들을 .을 기준으로 split 하여 각자의 연, 월, 일 로 나누어준 후
Integer.parseInt 를 통해서 문자열 String타입의 숫자를 int타입으로 변환
+) Byte.parseByte();
Short.parseShort();
Integer.parseInt();
Long.parseLong();
Float.parseFloat();
Double.parseDouble();
#1020 [기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.next();
String[] y = x.split("\\-");
System.out.printf(y[0]+y[1]);
}
}
#1021 [기초-입출력] 단어 1개 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.next();
System.out.printf("%s",x);
}
}
#1022 [기초-입출력] 문장 1개 입력받아 그대로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.nextLine();
System.out.printf("%s",x);
}
}
#1023 [기초-입출력] 실수 1개 입력받아 부분별로 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.nextLine();
String[] y = x.split("\\.");
System.out.printf("%s%n%s", y[0], y[1]);
}
}
#1024 : [기초-입출력] 단어 1개 입력받아 나누어 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.nextLine();
for(int i = 0; i < x.length(); i++) {
//System.out.printf("\'%s\'%n", x.charAt(i));
System.out.println("'" + x.charAt(i) + "'");
}
}
}
x.length() : a의 길이 값을 확인 할 수 있다
x.charAt(i) : a의 i번째 문자열 (파이썬의 a[i] 와 같음)
# 1025 : [기초-입출력] 정수 1개 입력받아 나누어 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String x = String.valueOf(a);
System.out.println("[" + x.charAt(0) + "0000]");
System.out.println("[" + x.charAt(1) + "000]");
System.out.println("[" + x.charAt(2) + "00]");
System.out.println("[" + x.charAt(3) + "0]");
System.out.println("[" + x.charAt(4) + "]");
}
}
valueOf( ) 메소드는 ( )괄호 안의 해당 객체를 String 객체로 변환시키는 역할 (String의 객체로 형변환)
#1026 : [기초-입출력] 시분초 입력받아 분만 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.next();
String[] y = x.split("\\:");
int a = Integer.parseInt(y[1]);
System.out.println(a);
}
}
#1027 : [기초-입출력] 년월일 입력 받아 형식 바꿔 출력하기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x = sc.next();
String[] y = x.split("\\.");
int day = Integer.parseInt(y[2]);
int month = Integer.parseInt(y[1]);
int year = Integer.parseInt(y[0]);
System.out.printf("%02d-%02d-%04d",day,month,year);
}
}