CS 기초/알고리즘 · 문제풀이

[JAVA] 문자열(String) - 문자 찾기 / 대소문자 변환 / 문장 속 단어

sofiaaa 2022. 2. 12. 18:18
반응형

문자 찾기

 

문장 속 단어가 몇 개 있는지 찾기

전부 대문자로 바꾸는 toUpperClase()   가 핵심이다.

import java.util.*;

public class Main {

    public int solution(String str, char t){
        int answer = 0;

        // 전부 대문자로 바꾼다
        str = str.toUpperCase();
        t = Character.toUpperCase(t);

        // 첫 번째 방법,
//        for(int i = 0 ; i < str.length() ; i++){
//            if(str.charAt(i) == t) answer++ ;
//        }

        // 두 번째 방법,
        // 문자열을 문자 배열로 바꿔서 for문 사용
        for(char x : str.toCharArray()){
            if(x == t) answer ++;
        }

        return answer;
    }

    public static void main(String[] args) {
        // 백준 사이트 방식 - 콘솔 입출력 방식
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next(); // 문자열
        char c = kb.next().charAt(0); // 그 중 문자 한개
        System.out.print(T.solution(str, c));
    }
}

 

 

대소문자 변환

 

import java.util.*;

public class Main {
    public String solution(String str){
        String answer = "";
        for(char x : str.toCharArray()){
            // 소문자인지 물어보는 클래스
            if(Character.isLowerCase(x)) answer += Character.toUpperCase(x);
            else answer += Character.toLowerCase(x);
        }
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next();
        System.out.print(T.solution(str));
    }
}

 

 

 

문장 속 단어

 

import java.util.*;

public class Main {
    public String solution(String str){
        String answer = "";

        // ** split **
        // 최대값으로
//        int m = Integer.MIN_VALUE;
//        String[] s = str.split(" ");
//        for(String x : s){
//            int len = x.length();
//            if(len > m){
//                m = len;
//                answer = x;
//            }
//        }

        //** indexOf **
        int m = Integer.MIN_VALUE, pos;
        while((pos = str.indexOf(' ')) != -1){
            String tmp = str.substring(0, pos);
            int len = tmp.length();
            if(len > m){
                m = len;
                answer = tmp;
            }
            str = str.substring(pos+1);
        }

        if(str.length() > m) answer = str;

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        // 문장으로 받을 때,
        String str = kb.nextLine();
        System.out.print(T.solution(str));
    }
}

반응형