📌 자바의 정석 유튜브 인강으로 후루룩 정리 (50/171)
System.out.println() 단점: 출력형식 지정불가, 10진수만 출력
System.out.printf() : 출력형식 지정 가능
⎻지시자: %b, %d, %o, %x, %f, %e, %c, %s
Scanner
import java.util.*;
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String input = sc.nextLine();
int num = Integer.parseInt(input); //문자열을 숫자로 변환
'0' 을 더하거나 뺀다
숫자+""
Integer.parseInt("3")
Double.parseDouble("3.4")
예제)
String str = "3";
System.out.println(str.charAt(0) - '0'); //'3'-'0' = 3
System.out.println("3" + 1); //"3"+"1" = "31"
System.out.println(3 + '0'); //'3'-> 출력은 51
System.out.println((char)3 +'0'); //'3' 출력
논리연산자 : && || !
3항연산자: ?:
float f = 1234; // int타입이 더 작으니까 float타입에 저장
int i = 3.14f; // int타입이 더 작아서 에러
Math.round() : 소수 "첫째자리"에서 반올림한 정수
❗️ 소수 넷째자리에서 반올림하고 싶다면..?
double pi = 3.142592;
double shortPi = Math.round(pi * 1000 ) / 1000.0; //Math.round(3141.592) -> 3142 / 1000.0 = 3.142
System.out.println(shortPi);
== 대신 equals()를 사용해야 한다
str1.equals(str2);
str.equals("yes") // 대소문자 구분 str.equalsIgnoreCases("yes") // 대소문자 구분 X
조건식 ? 식1 : 식2
result = (x > y) ? x : y;
{} 생략한 if문 - 딱 한 줄만 if문의 영역이다
경우의 수 많을 때 유리. break문 유의.
제약조건:
switch(조건식){
case 값1 :
//
break;
case 값2 :
//
break;
default:
//일치하는 case문이 없을 때 수행하는 문장
}
Math.random() : 0.0 ~ 1.0 사이의 임의의 double 값 반환
do {}을 최소한 한 번 이상 반복 - 사용자 입력받을 때 유용
while문 뒤 ; 유의
do{
}
while() ;
break는 자신 포함된 반복문 밖으로, continue는 반복문의 맨 끝으로 이동해서 다음 반복으로 넘어간다(반복 건너뛸 때 유용)
Loop1 : for(int i=2; i<=9 ; i++){
for(int j=1 ; j<=9 ; j++){
if(j==5):
break Loop1;
// break
}// end of break
}
// end of Loop1 -> break Loop1
int[] score1 = new int[5];
int[] score2 = {50, 60, 70, 80, 90, 100};
int tmp = score1.length; //배열 길이
//배열의 모든 요소를 출력한다
System.out.print.ln(Arrays.toString(score2)); //[50, 60, 70, 80, 90] 출력
String[] name = new String[3];
name = {"Kim", "Park", "Yi"};
int[][] score = new int[4][3];
배열 한번 생성하면 길이 변경 불가
자동 초기화 - int : 0
내용을 변경할 수 없다(read only)
char charAt(int index) //해당 index에 있는 문자 반환
int length() //문자열 길이 반환
String substring(int from , int to) //to는 포함X, 해당 범위 문자열 반환
boolean equals(Object obj)
char[] toCharArray() //문자열을 문자배열로 변환에서 반환
배열 비교와 출력 - equals(), toString()
❗️2차원 배열은 Arrays.deepToString(arr2d);, Arrays.deepEqualst(str2D, str2D2);
배열의 복사 - copyOf(), copyOfRange()
int[] arr = {0,1,2,3,4}
int[] arr2 = Arrays.copyOf(arr, arr.length); // arr2=[0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 7); // arr3 = [0,1,2,3,4,0,0]
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // arr5=[2,3]
배열의 정렬 - sort()
❗️내림차순: Arrays.sort(arr, Collections.reverseOrder());