JAVA 코딩테스트 문법

둥그냥·2021년 1월 14일
0

Problem Solving

목록 보기
2/6

문자열

문자열 비교

str1.compareTo(str2) //int 반환
  • str1이 str2보다 사전순으로 뒤인 경우 양수를 반환한다
  • str1이 str2보다 사전순으로 앞인 경우 음수를 반환한다
  • str1과 str2가 같은 경우 0을 반환한다

특정 문자열 찾기 · 검사

boolean startsWith(String prefix) //해당 단어로 시작하는 문자열인지 검사한다
boolean endsWith(String suffix) //해당 단어로 끝나는 문자열인지 검사한다
int indexOf(String str) //해당 단어가 시작하는 인덱스를 반환한다 (찾지 못할 경우 -1 반환)
//prefix로 시작하는지 검사한다
str.startsWith(prefix); //boolean 반환

문자열 자르기 · 변환

String.substring(start) 
//문자열  start위치부터 끝까지 문자열 자르기
String.substring(start,end) 
//문자열  start위치 부터 end전까지 문자열 발췌

//////////문자열 -> 숫자 변환
Integer.parseInt()
Integer.valueOf()

//////////숫자 -> 문자열
Integet.toString()
  • char에 사용하면 아스키코드가 되어버림.
  • num = Character.getNumericValue(ch)를 사용하거나,
  • 혹은 (int)ch - (int)’0’을 통해 구할 수 있음
  • 혹은 c+""를 통해 문자열로 만들어 주어도 됨
//배열	
arr.length
//문자열	
str.length()

//문자열 인덱스 접근
str.charAt(i)

대소문자 바꾸기

str.toUpperCase()
str.toLowerCase()

배열

배열 자르기

Arrays.copyOfRange(array, from, to);

값에 의한 복사가 일어난다.
복사된 배열에서 값을 바꿔도 원본 배열의 값은 바뀌지 않는다.

정렬

import java.util.Arrays;

//오름차순 
Arrays.sort(arr);
//내림차순  (내림차순 때는 int말고 integer를 써야 함!)
Arrays.sort(arr,Collections.reverseOrder());
//일부분만
Arrays.sort(arr, 0, 4); // 0,1,2,3 요소만 정렬

특정 요소 찾기

배열이 정렬되어 있어야만 사용할 수 있음

int Arrays.binarySearch(배열, key값)

Arrays.binarySearchint를 반환하는데

  • 해당 값을 찾았을 경우 index를 반환한다
  • 찾지 못했을 경우 ' -insertion point -1'을 반환한다.
    == 배열에 추가된다면 위치할 자리*(-1) -1
    == 만약 배열에 있었다면 위치했었을 자리*(-1) - 1

    [참고] 값에 1을 빼는 이유는 만약 반환 값이 0일 경우 +0과 -0의 구분을 할 수 없어서이다. 즉 값을 찾아서 0번째 인덱스에 존재한다는 의미vs값이 없고 만약 추가된다면 0번째 인덱스에 추가된다는 의미를 구분하기 위해서이다. 이처럼 -1을 해주면 무조건 값을 찾았을 경우에는 양수를 값을 찾지 못했을 경우에는 음수를 반환하게 된다.


Collection

list -> Array

리스트를 배열로 바꾸는 법
타입이 같다면 toArray를 사용하면 된다.

example) ArrayList -> String[]

list.toArray(new String[list.size()])

하지만 Integer 리스트를 int 배열로 바꾸는 등 타입이 변경되야 할 때는 stream을 유용하게 사용할 수 있다.

example) ArrayList -> int[]

list.stream().mapToInt(i->i.intValue()).toArray() 

정렬

//comparator 사용
Collections.sort(strings, new Comparator<String>() {
	@Override
 	public int compare(String s1, String s2) {
 	return s1.length() - s2.length();
 }

특정 요소 찾기

int java.util.list.indexOf(Object o)

List에서 특정요소를 찾아 index를 반환한다.
배열에서 쓰고 싶은 경우

Arrays.asList(arr).indexOf(item);

처럼 배열->리스트로 변환해 주어야 한다.
하지만 만약 정렬된 배열이면 굳이 리스트로 변환하지 않고 Arrays.binarySearch(배열,key)를 사용할 수 있다.

example)

List<String> list = Arrays.asList("a","b","c");
System.out.println(list.indexOf("b")); // 1 출력

수학

반올림

Math.round 와 String.format()

double money = 5000.000;
System.out.println(Math.round(money*1000)/1000);
//결과 5000
System.out.println(String.format("%.3f", money)); 
//결과 : 5000.000

Math.round => 첫째짜리까지 반올림.
곱하고 나누기 꼼수를 이용해 n번째까지 반올림 가능

제곱근(루트) 구하기

Math.sqrt() 

더블을 반환함, Math는 내장되어있음

0개의 댓글