[JAVA] charAt() 메서드 활용

나옹·2022년 11월 15일
0

키보드로 단어를 입력받고 어떤 단어가 연속으로 몇개 있는지 확인하는 문제

출력예시)
aabbcccd

a2개 b2개 c3개 d1개
a2b2c3d

		System.out.println("문자를 입력하세요");
		Scanner in=new Scanner(System.in);
		String newa="";
		String a=in.nextLine();
        int cnt=0;

Scanner 를 import 해주고 입력받은 문자를 a변수에 저장한다.

그리고 출력될 문장을 저장하는 String변수가 필요하기 때문에 newa 를 선언

연속된 횟수를 확인하기 위해 Int 변수 cnt선언

for(int i=0; i<a.length(); i++) {
			cnt=0; //포문이 한번 끝날시 cnt값은 0으로 초기화
			for(int j=i; j<a.length(); j++) {
				if(a.charAt(i)!=a.charAt(j)) {
					break;
				}else {
					cnt++;
				}
			}
			if(cnt>1) { //여러개 나왔다.
				newa= newa+a.charAt(i)+cnt;
				i=i+cnt-1;
			}else {
				newa= newa+a.charAt(i);
			}
			System.out.print(i+" : "+a.charAt(i)+"/");
			System.out.print(cnt+ "개가 연속으로 있다.");
			System.out.println();	
		}
		System.out.println(newa);	

이중포문을 사용하여 글자의 길이만큼 포문을 돈다.
만약 같은 단어가 연속으로 있다면 cnt++ 없다면 break로 for문을 종료 시켜준다.
그렇게 이중for문이 끝났을 때 cnt가 1이상이라면
charAt(i)로 단어를 잘라주고 몇개 있는지 출력해준다.
for문이 한번 끝날때마다 cnt는 0으로 초기화 시켜주고 다시 다음 단어를 확인

cnt가 1이하라면 연속되지 않으니 newa에 cnt를 포함하지 않는다.

profile
최고의 개발을 위해 !

0개의 댓글