[JAVA] 자주 사용하는 코딩테스트 문법 정리

안녕하세요.·2023년 11월 21일
0

Algorithm

목록 보기
18/68
post-thumbnail

String 메소드

String str = "apple";

//길이 반환
str.length();

//빈 문자열 체크
str.isEmpty();

//문자 찾기
str.charAt(0); // 'a'->문자 반환
str.indexOf("a"); //0->인덱스 반환
str.lastIndexOf("p"); //2->마지막으로 문자가 속한 인덱스 반환

//문자 자르기
str.substring(1, 3); //"pp"->인덱스 1이상 3미만 위치의 문자열 반환
str.substirng(3); "app"->인덱스 3미만 위치의 문자열 반환

//문자 치환(바꾸기)
//repalace([기존문자], [바꿀문자])
str.replace('p', 'e'); //aeele-> 모든 [기존문자]를 [바꿀 문자]로 치환

//replaceAll([정규식], [바꿀문자])
str.replaceAll(".", "/"); // "/////"-> 정규식에 맞춰 문자 치환 (정규식 "."은 모든 문자를 의미)

str.replaceFirst('p, 'e'); "apple" -> 여러 문자 중 첫번째만 치환

//문자 동일 여부 판단
//자바 string의 경우, 클래스로써 Call by Reference형태로 생성 시 주소값이 부여된다.
//그렇기에 String타입을 선언했을때는 같은 값을 부여하더라도 서로간의 주소값이 다르다.
//따라서 값 비교로는 equals를 사용한다.
str.equals("apple);

//문자 비교
/**
* str과 applf가 같으면 0
* str이 applf보다 사전순으로 앞이면 -1
* str이 applf보다 사전순으로 뒤면 1
* str과 applf가 마지막 문자만 다르면, 마지막 문자의 사전순 차이 반환
**/
str.compateTo("apple); // -1->위 내용 참고

//문자 포함 여부 판단
str.contains("app);

//문자열 분리
str.split(" "); //공백으로 구분된 문자열 str을 분리하여 String[] 배열로 반환
str.split(); //띄어쓰기 없는 문자열 str을 한 문자씩 분리하여 String[] 배열로 반환

//문자 앞뒤 공백 제거
str.trim(); //str의 앞뒤 공백을 제거한다. 문자열 사이의 공백은 제거하지 않는다.

//문자 <-> 숫자 변환
Integer.parseInt("100") //문자열 "100"을 숫자 100으로 변환
Integer.toString(100) //숫자 100을 문자열 "100"으로 변환

String Builder 메소드

StringBuilder sb = new StringBuilder();

//문자열 추가
sb.append("apple"); //"apple"

//특정 인덱스에 문자 삽입
sb.insert(2, "oo");	//"apople"

//문자열 삭제
sb.delete(0, 2);	//"oople"

//특정 인덱스의 문자를 변경
sb.setCharAt(1, 'p')	//"ople"

//문자열 뒤집기
sb.reverse();	//"elpo"

//문자열 절대길이 줄이기
sb.setLength(2);	//"el"

//문자열 절대길이 늘리기
sb.setLength(4);	//"el  " ->뒤가 공백으로 채워짐

List 관련 메소드

List<String> list = new ArrayList<>();
List<String> list2 = new ArrayList<>();
  
//요소 삽입
list.add("one")
  
//특정 인덱스에 요소 삽입
list.add(0, "zero");
  
//리스트 병합(추가되는 리스트가 뒤로 온다)
list.addAll(list2);

//특정 요소의 첫번째 인덱스 반한
list.indexOf("zero");	//0

//특정 요소의 마지막 인덱스 반환
list.lastIndexOf("zero");
  
//특정 인덱스의 값 삭제
list.remove(0);
  
//첫번째 값 삭제
list.remove("one");

//리스트 차집합
list.removeAll(list2);	//list에서 list2에 있는 모든 값을 삭제
  
//리스트 교집합
list.retainAll(list2);	//list에서 list2에 있는 값을 제외한 모든 값을 삭제
  
//리스트 비우기
list.clear();
  
//리스트 비워있는지 체크
list.isEmpty();
  
//리스트 길이
list.size();
  
//리스트를 특정 요소 포함여부 체크
list.contains("one");

//리스트에 다른 리스트 요소가 전부 포함되어있는지 여부 체크
list.containAll(liset2);	//list에 list2의 모든 값이 포함되어 있으면 true

//람다식 사용하여 요소를 제거
list.removeIf(x-> x % 2 == 0)	//list에서 짝수인 수를 모두 제거

Array to List / List to Array / 배열 <->리스트

//문자열 타입 배열을 List로 변환
String []temp = {"apple", "banana", "lemon"};
List<String> list = new ArrayList<>(Arrays.asList(temp));

//List를 문자열 배열로 변환
List<String> list = new ArrayList<>();
String[] temp = list.toArray(new String[list.size()];

//정수 배열을 List로 변환
int []temp = {1, 2, 3, 4};
List<Integer> list = new ArrayList<>(Arrays.asList(temp));

//List를 정수 배열로 변환
List<Integer> list = new ArrayList<>();
int[] temp = list.stream().mapToInt(x->x).toArray();

1차원배열의 정렬

import java.util.Arrays;

// 오름차순
Arrays.sort(arr);

// 내림차순 기본타입에 선언 불가!! 참조타입에 가능
Arrays.sort(arr, Collections.reverseOrder());

//참조타입 변환(ex - int[])
Integer[] refArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);
//변환 후 정렬
Arrays.sort(refArr, Collections.reverseOrder());

2차원배열의 정렬

import java.util.Arrays;
import java.util.Comparator;

// Comparator는 인터페이스이기때문에 오버라이딩
Arrays.sort(arr, new Comparator<int[]>() {

    @Override
    public int compare(int[] o1, int[] o2) {
        return o1[0]-o2[0]; // 첫번째 숫자 기준 오름차순 {1,30}{2,10}{3,50}{4,20}{5,40}
        return o2[0]-o1[0]; // 첫번째 숫자 기준 내림차순 {5,40}{4,20}{3,50}{2,10}{1,30}
        return o1[1]-o2[1]; // 두번째 숫자 기준 오름차순 {2,10}{4,20}{1,30}{5,40}{3,50}
        return o2[1]-o1[1]; // 두번째 숫자 기준 내림차순 {3,50}{5,40}{1,30}{4,20}{2,10}
    }


});
 

// 람다식 활용
Arrays.sort(arr, (o1, o2) -> o1[1] - o2[1]);
 


//String 배열 정렬
Arrays.sort(arr, (o1, o2) -> o1[1].compareTo(o2[1]));
profile
https://lakedata.tistory.com 블로그 이전

0개의 댓글

관련 채용 정보