JAVA 코딩테스트 대비-1. 문자 찾기

리만·2023년 11월 20일

섹션 1. String 문자열 : 문자 찾기

텍스트한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하라. 대소문자를 구분하지 않는다.

💻 강의 코드

class Algorithm {
	public int solution(String str, char t){
		int answer = 0;
		str = str.toUpperCase();
		t = Character.toUpperCase(t);
		System.out.println(str);

		for(int i = 0; i<str.length(); i++){
			if(str.charAt(i)==t)
				answer ++;
		}
		return answer;
	}

	public void main(String[] args){
		Algorithm T = new Algorithm();
		Scanner kb = new Scanner(System.in);
		String str = kb.next();
		char c = kb.next().charAt(0);
		System.out.print(T.solution(str,c));
	}
}

💻 IntelliJ - Service, Test 코드
<@Service
public class StringAlgorithmService {
    public int findCharacter(String str, char c) {
    
        int answer = 0;
        str = str.toUpperCase();
        c = Character.toUpperCase(c);
        
        for (char c1 : str.toCharArray()) {
            if (c1 == c) {
                answer++;
            }
        }
/*        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == c) {
                answer++;
            }
        }*/
        return answer;
    }    
 }
@SpringBootTest
class AlgorithmApplicationTests {

    @Autowired
    StringAlgorithmService stringAlgorithmService;

    @Test
    @DisplayName("문자 찾기")
    void findCharacterTest() {
    
        String str = "Hi my Name is LEEman";
        char c = 'm';

        int answer = stringAlgorithmService.findCharacter(str, c);
        System.out.println("result ====> " + answer);
    }
 }

💻 결과

💻 NOTE

Scanner kb = new Scanner(System.in) : 키보드 입력
String str = kb.next() : 문자열 입력
char c = kb.next().charAt(0) : 문자 입력
toUpperCase() : 대문자 변환
toLowerCase() : 소문자 변환
toCharArray() : String을 char로 바꿔 배열로 반환

출처 : 인프런 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

0개의 댓글