문자열의 형식을 설정하는 method
System.out.printf() 일 때만 출력 가능

D%d //정수
System.out.printf("%d", 3); //3
System.out.printf(" %d%n", 3); //3
System.out.printf("연필 %d개", 3); //연필 3개
------------------------------------------------
%f //실수
System.out.printf("%f\n", 3.14); //3.140000
System.out.printf("%f\n", 3.14159265); //3.141593
System.out.printf("%.2f\n", 3.14159265); //3.14
System.out.printf("%.8f\n", 3.14159265); //3.14159265
----> %fn //기본으로 소수점 6자리까지 나타난다
-----> '.원하는 소수점의 개수'를 입력을 안할시 기본으로 소수점 6자리까지 표기
ex) %.8fn > 소수점 8자리까지 표기
------------------------------------------------
%c //문자열
System.out.printf("%c. %C", 65, 65);
-----> 대문자 소문자 가능, 동일하게 출력
------------------------------------------------
%s //문자열 String
System.out.printf("%s", "안녕하세요");
//문장을 출력
System.out.printf("%s", "hello"); //hello
System.out.printf("%S", "hello"); //HELLO
----> %s를 사용하면 출력할 내영이 그대로 출력이 되지만
%S를 사용하면 대문자로 출력이 된다ㅣ
System.out.printf("\"%10s\"\n", "Hello, World"); //Hello World
System.out.printf("\"%15s\"\n", "Hello, World"); // Hello World
System.out.printf("\"%-15s\"\n", "Hello, World"); //Hello World
------>
%와 s사이에 숫자를 넣으면 그 크기만큼 정렬이 된다.
양의 정수 값이 들어가면 해당 숫자만큼 의 공간에 우측 정렬이 되고
음의 정수 값이 들어가면 좌측 정렬이 된다
------------------------------------------------
%b //Boolean 논리형 true flase
System.out.printf("%b\n", true); //
System.out.printf("%B\n", true);
System.out.printf("%b\n", false);
System.out.printf("%B\n", false);
System.out.printf("%b\n", null);
System.out.printf("%B\n", null);
------------------------------------------------
Trim 문자열의 왼쪽 오른쪽 공백을 지워주는 함수
--->
String str = " 문자열에 공백이 있습니다. ";
System.out.println(str);
str = str.trim();
System.out.println(str);
// 문자열의 공백이 있습니다
//문자열의 공백이 있습니다
* .trim(); 써주면 딘다
* replace(); ---> 가운데 공백 제거
------------------------------------------------
Concat 문자열을 합치는 함수
------------>
class Main {
public static void main(String[] args) {
String schoolName = "학하";
String fullSchoolName = schoolName.concat("초등학교");
System.out.println("== 정답 v1(concat) ==");
System.out.printf("학교 : %s\n", fullSchoolName);
schoolName = "청솔";
fullSchoolName = schoolName + "초등학교";
System.out.println("== 정답 v2(+) ==");
System.out.printf("학교 : %s\n", fullSchoolName);
char c1 = fullSchoolName.charAt(0);
char c2 = fullSchoolName.charAt(1);
System.out.println("== 정답 v3(charAt) ==");
System.out.printf("학교 : %c%c초등학교\n", c1, c2);
String fullSchoolName2 = "" + fullSchoolName.charAt(0) + fullSchoolName.charAt(1);
System.out.println("== 정답 v4(charAt + charAt) ==");
System.out.printf("학교 : %s초등학교\n", fullSchoolName2);
// fullSchoolName => 청솔초등학교
// 0 1 2 3 4 5
fullSchoolName = fullSchoolName.substring(0, 2);
System.out.println("== 정답 v5(substring) ==");
System.out.printf("학교 : %s초등학교\n", fullSchoolName);
}
}
* charAt : 문자열의 n번째의 문자를 불러온다
* substring(n,m) : 문자열의 n번째부터 m번째까지 문자열을 불러온다
------------------------------------------------
split : 특정문자로 문자열 분리하는 함수
relace : 자신이 바꾸고 싶은 문자로 문자열을 치환하는 함수
replace(기존문자,바꿀문자);
class Main {
public static void main(String[] args) {
String str = "\t\t2020.4.4";
System.out.println("== 정답 v1 ==");
System.out.printf("날짜 : %s\n", str.trim().replace(".", "-"));
System.out.println("== 정답 v2 ==");
String str2 = str.trim();
str2 = str2.replace(".", "-");
System.out.printf("날짜 : %s\n", str2);
System.out.println("== 정답 v3 ==");
System.out.printf("날짜 : %s-%02d-%02d\n", "2020", 4, 4);
System.out.println("== 정답 v4 ==");
String[] strs = str.trim().split("\\.");
int year = Integer.parseInt(strs[0]);
int month = Integer.parseInt(strs[1]);
int day = Integer.parseInt(strs[2]);
System.out.printf("날짜 : %04d-%02d-%02d\n", year, month, day);
}
}
-------------------------------------------------------------
Scanner : 콘솔창에 입력하여 나타내주는 함수
Scanner를 사용하기 위해서는
1) import java.util.Scanner;를 맨위에 적어야한다
2) Scanner 객체 생성하기 Scanner sc = Scanner(System.in); ------> System.in은 사용자로부터 입력을 받기 위한 스트림이다
3. Scanner 입력 메소드 쓰기
입력 메소드 종류
in.nextByte() // byte 형 입력 및 리턴
in.nextShort() // short 형 입력 및 리턴
in.nextInt() // int 형 입력 및 리턴
in.nextLong() // long 형 입력 및 리턴
in.nextFloat() // float 형 입력 및 리턴
in.nextDouble() // double 형 입력 및 리턴
in.nextBoolean() // boolean 형 입력 및 리턴
in.next() // String 형 입력 및 리턴 (공백을 기준으로 한 단어를 읽음)
in.nextLine() // String 형 입력 및 리턴 (개행을 기준으로 한 줄을 읽음)
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.printf("당신의 나이를 입력해주세요 : ");
int age = s.nextInt();
System.out.printf("당신의 키를 입력해주세요 : ");
float height = s.nextFloat();
System.out.printf("입력된 나이 : %d살\n", age);
System.out.printf("입력된 키 : %.1fcm\n", height);
}
}
--------------------------------------------
paresInt : Srring타입을 int타입으로 변환해주는 함수
parse종류 :
Byte.parseByte();
//Byre로 치환
Short.parseShort();
//short로 치환
Integer.parseInt();
//int로 치환
Long.parseLong();
//long로 치환
Float.parseFloat();
//float로 치환
Double.parseDouble();
//double로 치환
package main;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.printf("나이 : ");
String line = scanner.nextLine();
line = line.trim().replace("살", "1");
int age = Integer.parseInt(line);
System.out.printf("나이 : %d살\n", age);
}
}