코딩테스트 입문 단계에서 자주보이는 기본 메소드들이 있다.
문자열 메소드에서 복잡해지면서(어려운 거 아님)
약간 돌아서게 되기도 했는데,
여러 메소드들을 정리해보며 정면 돌파해보려 한다.
이후에도 계속 추가 예정이다.
Integer
String을 int로 변환
Integer i = Integer.valueOf( String str );
: 문자열 타입의 숫자를 Integer로 반환
int i = Integer.parseInt( String str );
: String문자열의 숫자를 받아서 int 타입으로 반환한다.
위 둘의 차이는 Auto Boxing 기능이 추가된 이후로는 체감되는 차이가 거의 없다고 공식문서에도 나와있다.
Integer.parseInt("10010", 2);
: 위처럼 두번째 값으로 n진수의 숫자를 10진수로 바꿔줄 수도 있다.
int를 String으로 변환
int i = 123;
//toString 메소드 사용
String strFromInt1 = Integer.toString(i);
//자동 변환
String strFromInt2 = i + "";
Integer.parseInt("10010", 2);
: 위처럼 두번째 값으로 n진수의 숫자를 10진수로 바꿔줄 수도 있다.
Integer.toBinaryString( int i );
: int를 2진수의 String으로 반환해줄 수 있다.
Integer.toString( int i , int n );
: int를 받아 n진수로 변환해준다.
배열의 toString
double[] values = {1.0, 1.1, 1.2};
System.out.println(values.toString()); // 이렇게 하면 [D@46a49e6 같은 값이 나옵니다.
System.out.println(Arrays.toString(values)); // 이렇게 하면 [1.0, 1.1, 1.2] 이 출력됩니다.
String
Char[] arr = str.toCharArr;
: String을 각각의 문자로 쪼개서 배열로 담는다.
String strNew = str.replaceAll("[정규식]", "(변경할 문자)");
: 해당조건의 문자열을 특정 문자열로 대체해준다.
replace도 전부 바꿔줍니다 replaceAll은 정규식을 사용할 때 사용하고 replace는 비교 문자열을 바꿔줍니다. 맨 처음만 바꾸는건 replaceFirst가 따로 있습니다
String[] arr = str.split("분할해 줄 기준 문자");
: 특정 문자열을 기준으로 쪼개서 배열에 담아준다. 만약 "" 빈문자열을 기준을 잡으면, 한 글자씩 쪼개준다.
String.join("seperator" , String[ ] arr);
: 배열들을 하나로 조립해주는 거. 사이사이 어떤 문자열을 넣어줄 수도 있다.
str.toLowerCase();
: 문자열 모두 소문자로 변경.
new String(char[ ] arr);
: 배열을 넣어주는 것도 가능
문자열 뒤집기
StringBuffer sb = new StringBuffer(str);
String reverse = sb.reverse().toString();
Character
Character.isUpperCase()
: 해당 문자가 대문자면 True 리턴
Character.toUpperCase()
: 해당 문자를 대문자로 전환.
Math
Math.abs( );
: 절대값
Math.max(a, b);
: 최대값
Math.min(a, b);
: 최소값
Arrays
Arrays.sort( arr );
내림차순
// primitive Type을 Wrapper클래스로 박싱해주어야 reverseOrder 사용가능.
Integer[] tmp = Arrays.stream(arr).boxed().toArray(Integer[]::new);
Arrays.sort(arr, Collections.reverseOrder()); //1. Comparator를 넣어준다.
Arrays.sort(arr, new Comparator<Integer>() { //2. 직접 Comparator를 설정하는 경우
@Override
public int compare(Integer i1, Integer i2) {
return i2 - i1;
});
Arrays.sort(arr, (i1, i2) -> i2 - i1
Arrays.toArray
Arrays.copyOfRange(array, startIntex, endIndex)
: substring느낌으로 복사해올 수 있다.
List에서 Array로 변환
List<Integer> integerList = new ArrayList<>();
Integer[] integerArr = integerList.toArray(new Integer[integerList.size()]);
Wrapper클래스 콜렉터를 원시타입 배열로
list.stream().mapToInt(Integer::intValue).toArray();
궁금한 것.
콤비네이션 조합의 경우의 수를 반복 실행하려면??
단순 for문으로는 안된다..
혹은 for문으로 모든 경우의 수를 하다가 이전에 나온 수가 나오면 패스하는 식으로 해야하나..?
참고링크
'TIL : Today I learned (or Week)' 카테고리의 다른 글
TIL 230824 : 테스트 코드 1 - JUnit이란? 단위테스트 (0) | 2023.08.27 |
---|---|
TIL 230823 : 테스트 코드 0 - 마음 다 잡고 준비하기. (0) | 2023.08.27 |
TIL 230821 : AWS S3 (Simple Storage Service) 3 - 폴더 이름 정리, 권한 (버킷 정책, ACL) (0) | 2023.08.24 |
WIL 230820 : 최종 프로젝트를 시작하며 (0) | 2023.08.24 |
TIL 230818 : AWS S3 (Simple Storage Service) 2 - multipart, requestDto와 첨부파일 동시에 받기 (0) | 2023.08.24 |