콘솔출력
System.out.println & System.out.print
System.out.println 메소드는 문자열을 출력하고 나서 행을 바꾸는 특징이 있다. 반면 문자열 출력 후 행을 바꾸지 않는 System.out.print 메소드도 존재
class Box{
private String conts;
Box(String cont){
this.conts = cont;
}
public String toString(){
return conts;
}
}
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("12");
sb.append(34);
System.out.println(sb.toString());
System.out.println(sb);
Box box = new Box("camera");
System.out.println(box.toString());
System.out.println(box);
}
}
StringBuilder 클레스에는 공통점이 있는데, 문자열을 반환하는 public String toString() 메소드가 정의 되어 있다. System.out.println은 참조 값이 전달되면, 인스턴스를 대상으로 toString 메소드를 호출. 이때 반환되는 문자열을 출력한다.
문자열을 조합해서 출력하는 System.out.printf
System.out.printf -> 정수는 %d, 실수는 %f, 문자는 %c, 12, 4.5, ‘A
앞부분은 출력을 담은 문자열, 뒷 부분은 문자열을 채우기 위한 값을 의미한다.

public class Main1 {
public static void main(String[] args) {
int age = 20;
double heigtht = 178.2;
String name = "Young sung woo";
System.out.printf("name: %s \n", name);
System.out.printf("age :%d \n height: %e\n\n", age, heigtht);
System.out.printf("%d - %o -%x \n\n", 77, 77, 77);
System.out.printf("%g \n", 0.00014);
System.out.printf("%g \n", 0.00000014);
}
}
printf 메소드는 줄 바꿈을 자동으로 하지 않는다. %e를 사용을 하면 지수 형태로 간단히 표기 가능 하다. 실수를 출력하는 방법으로는 %f를 이용하는 방법과 %e를 이용하는 방법이 있다.
콘솔 입력
Scanner 클래스
Scanner class는 Scanner (File source), Scanner (String source), Scanner (InputStream source). 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공. String 인스턴스 등 다양한 대상으로부터 데이터 추출 가능.
public class Main2 {
public static void main(String[] args) {
String source = "1 3 5";
Scanner sc = new Scanner(source);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int num3 = sc.nextInt();
int sum = num1 + num2 + num3;
System.out.printf("%d + %d + %d = %d \n", num1, num2, num3, sum);
}
}
Scanner 인스턴스와 인자로 전달된 source와의 연결로 이어진다.
Scanner sc = new Scanner (source)
Scanner 클래스의 키보드
Scanner sc = new Scaner (source) -> Scanner sc = new Scanner(System.in)
public class Main3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int num3 = sc.nextInt();
int sum = num1 + num2 + num3;
System.out.printf("%d + %d + %d = %d \n", num1 + num2 + num3);
}
}
nextInt를 호출하면 키보드로부터 데이터가 입력될 때까지 프로그램의 실행이 대기상태에 놓인다.
Scanner 클래스의 주요 메소드
Int nextInt()
Byte nextByte()
String nextLine()
Double nextDouble()
Boolean nextBoolean()
public class Main4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("문자열 입력");
String str1 = sc.nextLine();
System.out.println("문자열 입력");
String str2 = sc.nextLine();
System.out.printf("문자열 입력 1: %s, \n", str1);
System.out.printf("문자열 입력 1: %s, \n", str2);
}
}