zkvn99

[Java] 코딩테스트 자주 쓰는 메서드 본문

Language/Java

[Java] 코딩테스트 자주 쓰는 메서드

zkvn1103 2023. 6. 27. 03:16

문자열 받아오기

// Scanner
Scanner sc = new Scanner(System.in); // 입력 값 받아오기
int n = sc.nextInt(); // 정수 입력 값 (다음으로 들어오는 정수 값)

// BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // BufferedReader 입력 스트림에서 문자열을 읽음 readLine() 메서드 사용하여 문자열 읽음
        // int n = Integer.parseInt(br.readLine());
        // System.in 자바의 표준 입력 스트림(바이트 스트림) -> InputStreamReader를 통해 문자(문자 스트림)로 변환

// StringTokenizer
StringTokenizer st = new StringTokenizer(br.readLine());
        //StringTokenizer 문자열을 지정된 구분자를 기준으로 토큰으로 분리 (기본값 - 공백)
        //hasMoreTokens() 다음 읽을 토큰 여부, nextToken() 다음 토큰 반환, countToken() 남아 있는 토큰 개수 반환
        
int n = Integer.parseInt(st.nextToken()); // 이런 형태로 토큰을 꺼내서 쓰는 방식

//버퍼로 받아온 문자열을 토큰으로 분리해서 꺼내쓰는 형태

 

// 기본 내장 메서드
str1.contains(str2) // str2 포함 시 true 아니면 false
n[0].equals(id_pw[0]) // n[0]과 id_pw[0]이 같으면 true 아니면 false
str.replace("a","b") // a를 b로 치환
str.replaceAll("[abcd]","q") // 정규표현식 a,b,c,d를 q로 치환

// Math
min = Math.min(min, i); // 작은 값
max = Math.max(max, i); // 큰 값
abs = Math.abs(n-i); // 절댓값
pow = Math.pow(a,b); // a의 b제곱
sqrt = Math.sqrt(a); // a의 제곱근

// 배열
String[] quizArr = quiz[i].split(" "); // split() 특정 기준으로 나누기
Integer[] integerArray = Arrays.stream(numList).boxed().toArray(Integer[]::new); // int 배열을 Integer 배열로 변경
Arrays.stream(integerArray).mapToInt(Integer::intValue).toArray(); // int 배열로 변환
Arrays.copyOfRange(arr, min, max + 1); // arr 배열에서 min 인덱스와 max 인덱스 사이의 배열 삽입

// 형변환
Integer.parseInt(arr[0]) // 문자열(숫자) 정수로 형변환 

// BigInteger
BigInteger bigNum = new BigInteger("1"); // BigInteger 정수형 범위 초과한 숫자 저장가능
// 연산자 add 덧셈, substract 빼기, multiply 곱셈, divide 나눗셈, remainder 나머지

// 스트림
arr = Arrays.stream(arr)
           .filter(num -> !(num == 0)) // 특정 값 필터 (0 제거)
           .toArray(); // 배열로 변경
Arrays.stream(arr).distinct().toArray(); // 중복된 값 하나만 남김
    
// 정렬
Arrays.sort(subArray); // 오름차순 정렬
Arrays.sort(integerArray, Collections.reverseOrder()); // 내림차순 정렬 (Integer 객체형)
Arrays.sort(integerArray, Comparator.comparingInt(num -> Math.abs(num - n))); // 절댓값 계산 후 정렬
Integer[] boxedArray = Arrays.stream(arr).boxed().toArray(Integer[]::new); // int 배열을 Integer 배열로 변환
Arrays.sort(boxedArray, Collections.reverseOrder()); // 내림차순으로 정렬
int[] sortedArray = Arrays.stream(boxedArray).mapToInt(Integer::intValue).toArray(); // Integer 배열을 다시 int 배열로 변환
        
// 컬렉션
List<Integer> answerList = new ArrayList<>(); // 동적 배열 리스트 선언
//	add((index,) 값) 추가, remove 제거, contains 포함되어 있는지 확인, get(인덱스) 받아오기
int[] answer = list.stream().mapToInt(x -> x).toArray(); // 리스트 배열로 변환
num.stream().sorted().mapToInt(Integer::intValue).toArray(); // 리스트 배열로 변환 (정렬)

HashSet<Integer> hashSet = new HashSet<>(SIZE); // 동적 배열 해쉬 선언
HashMap<String, Integer> map = new HashMap<>(); // 맵 (key, value) 선언
// put("key", value) 삽입, get("key") key에 해당하는 value 출력, values() 저장된 모든 값 출력
// remove("key") 키에 해당하는 값 제거, size() 개수, keySet() 모든 키가 저장된 set 반환
// isEmpty() 비어있는지 확인, Set set = map.entrySet(); A=1 형태로 저장, clear() 전부 제거
// clone() 복제, containsKey() containsValue() 지정된 키 혹은 값이 포함되어 있는지 알려줌

 

문자열안에 숫자 확인

String str = "12345";
boolean containsOnlyDigits = str.matches("\\d+"); // 숫자로만 이루어진 문자열인지 확인

boolean containsNonDigit = false;
for (char c : s.toCharArray()) {
    if (!Character.isDigit(c)) {
            containsNonDigit = true;
            break;
          }
 }
return !containsNonDigit;

 

문자열 덧셈 StringBuilder

StringBuilder builder = new StringBuilder(); // 인스턴스 생성
builder.append("Hello"); // 문자열 "Hello" 추가
builder.insert(6, "Awesome"); // 인덱스 6에 문자열 "Awesome" 삽입
builder.delete(0, 5); // 인덱스 0부터 5 전까지의 문자열 삭제
builder.replace(0, 5, "Hi"); // 인덱스 0부터 5 전까지의 문자열을 "Hi"로 변경
builder.reverse(); // 문자열을 역순으로 변환
String result = builder.toString(); // StringBuilder에 저장된 문자열 얻기

builder.append("Hello");
builder.append(" World!");

String result = builder.toString(); // "Hello World!" 반환

'Language > Java' 카테고리의 다른 글

[Spring] 데이터 전달  (0) 2023.09.16
[Java] Exception Handling  (1) 2023.08.01
[Java] Basic Syntax  (0) 2023.07.30
[Java] Array & Collection  (0) 2023.05.27
[Java] int 배열 vs Integer 배열  (0) 2023.05.26