앞선 글에서는 출력에 관한 문제와 답안을 작성했다.
[JAVA] 코드업 기초 100문제 - [기초-출력]
오늘 글에서는 코드업 기초 100문제 중 입출력에 관한 문제와 답안을 정리할 것 이다.
내용이 조금 많아서, 작성 완료하는 데 시간이 많이 걸렸다.
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(n);
}
}
설명) 사용자의 입력을 받기 위해서 쓰는 Scanner 클래스를 사용한다. 사용하기 위해서는, 아래와 같다.
1) 현재 클래스 외부에 있는 Scanner 클래스 import 하기
import java.util.Scanner;
2) Scanner 객체 생성하기
Scanner scanner = new Scanner(System.in);
3) 생성한 객체에서 제공하는 .next(); 메서드를 통해서 값을 받아오기
scanner.nextInt();
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner scanner = new Scanner(System.in);
String x = scanner.nextLine();
System.out.println(x);
}
}
설명) Scanner 클래스의 nextInt(), nextDoble(), nextFloat() 등 메서드는 리턴 타입에 따라서 메서드가 달라진다.
1011 문제처럼, String을 리턴하는 메서드는 두 가지가 있는데, 바로
next(), nextLine() 이렇게 두 가지 이다.
설명) next() 의 경우에는, 공백이 포함되지 않은 문자열을 입력할 때, 사용하고
nextLine()은 공백이 포함된 문자열을 입력할 때 사용한다. 왜냐하면, next()를 사용하여, 띄어쓰기를 하면, 현재 입력이 끝난다. 그러나, nextLine()은 엔터를 눌러야지만, 현재 입력이 끝난다.
설명) 그렇다면, nextInt(), nextDoble, nextFloat() 등의 리턴타입이 정해진 입력 메서드들은 공백을 포함하는 경우에 쓰는가? 아니면 그렇지 않은가? 정답은, 공백이 포함되지 않은 경우에 사용한다.
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%n", x);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
int a, b;
Scanner scanner = new Scanner(System.in);
a = scanner.nextInt();
b = scanner.nextInt();
System.out.printf("%d%n%d", a, b);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
System.out.printf("%s %s", b, a);
}
}
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%n", a);
}
}
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);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.printf("%s", str);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
sc.close();
String[] aNum = a.split("\\.",3);
String a1 = aNum[0];
String a2 = aNum[1];
String a3 = aNum[2];
int int1 = Integer.parseInt(a1);
int int2 = Integer.parseInt(a2);
int int3 = Integer.parseInt(a3);
System.out.printf("%04d.%02d.%02d", int1, int2, int3);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
sc.close();
String[] aNum = str.split("\\-",2);
String str1 = aNum[0];
String str2 = aNum[1];
System.out.printf("%s%s", str1, str2);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc. next();
System.out.printf("%s", str);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc. nextLine();
System.out.printf("%s", str);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String num = sc.nextLine();
String[] numArr = num.split("\\.");
System.out.printf("%s%n%s", numArr[0], numArr[1]);
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
for(int i =0; i < str.length() ; i++){
System.out.printf("\'%s\'%n" , str.charAt(i));
}
}
}
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String numStr = sc.nextLine();
/* 각 자리수를 int로 바꾸고, int 배열에 넘는 반복문 */
for (int i= 0; i < numStr.length() ; i++) {
/* 각 자리수에 맞는 수로 바꾸어 출력하는 반복문 */
System.out.println("["+( (numStr.charAt(i) - '0') * (int) Math.round(Math.pow(10, 4-i)))+"]");
/* charAt(i) - '0' 에서
charAt(i) 는 문자 '7' 이다. 여기서
-'0'을 해야,
해당 문자를 나타내는 아스키 코드를 숫자로 바꿀 수 있다.
*/
}
}
}
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String time = sc.nextLine();
StringTokenizer st = new StringTokenizer(time, ":");
String[] str = new String[3];
int i=0;
while(st.hasMoreTokens()) {
str[i]=st.nextToken();
i++;
}
int min = Integer.parseInt(str[1]);
System.out.println(min);
}
}
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String time = sc.nextLine();
StringTokenizer st = new StringTokenizer(time, ".");
String[] str = new String[3];
int i=0;
while(st.hasMoreTokens()) {
str[i]=st.nextToken();
i++;
}
int year = Integer.parseInt(str[0]);
int mon = Integer.parseInt(str[1]);
int day = Integer.parseInt(str[2]);
System.out.printf("%s-%s-%s", String.format("%02d", day),
String.format("%02d", mon), String.format("%04d", year));
}
}