[JAVA]기본 개념 Remind(~배열)

ggamang·2022년 9월 11일
0

JAVA&Spring

목록 보기
2/27

📌 자바의 정석 유튜브 인강으로 후루룩 정리 (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); //문자열을 숫자로 변환

❗️타입 간의 변환 방법

1. 문자와 숫자 간의 변환

'0' 을 더하거나 뺀다

2. 문자열로의 변환

숫자+""

3. 문자열을 숫자로 변환

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항연산자: ?:

연산자 우선순위

  1. 산술 > 비교 > 논리 > 대입
    ex) x > 3 && x < 5 : 비교연산자 ➣ 논리연산자
  2. 단항 > 이항 > 삼항
  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문의 영역이다

if - else if - else

switch

경우의 수 많을 때 유리. break문 유의.
제약조건:

  • 조건식 결과가 정수 or 문자열
  • case문 값은 정수 상수, 문자열만 가능, 중복X
switch(조건식){
	case 값1 :
    	//
        break;
    case 값2 :
    	//
        break;
    default:
    	//일치하는 case문이 없을 때 수행하는 문장
}

임의의 정수 만들기

Math.random() : 0.0 ~ 1.0 사이의 임의의 double 값 반환

do-while

do {}을 최소한 한 번 이상 반복 - 사용자 입력받을 때 유용
while문 뒤 ; 유의

do{
}
while() ;

break, continue

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

String 클래스

내용을 변경할 수 없다(read only)

char charAt(int index) 				//해당 index에 있는 문자 반환
int length()						//문자열 길이 반환
String substring(int from , int to)	//to는 포함X, 해당 범위 문자열 반환
boolean equals(Object obj)
char[] toCharArray()				//문자열을 문자배열로 변환에서 반환

Arrays 클래스

배열 비교와 출력 - 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());

0개의 댓글