강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

2120110005님의 프로필 이미지
2120110005

작성한 질문수

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

1. 문자 찾기

for(int a : abc) 오류

작성

·

339

0

<에러 내용입니다.>
/judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:10: error: illegal start of type for(int c: str){ ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:10: error: ')' expected for(int c: str){ ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:10: error: <identifier> expected for(int c: str){ ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:15: error: <identifier> expected System.out.println(cnt); ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:15: error: <identifier> expected System.out.println(cnt); ^ 5 errors

<아래는 제 코드입니다.>
import java.util.Scanner; public class Main { Scanner scn = new Scanner(System.in); char[] str = scn.nextLine().toUpperCase().toCharArray(); int com = scn.next().toUpperCase().charAt(0); int cnt = 0; for(int c: str){ if(c == com){ cnt++; } } System.out.println(cnt); }


인텔리제이에서는 잘 작동합니다.
메인 메소드 안에 내용만 복붙했고
잘 작동해야 하는데
for(:) 작동 못 하는 것 같은데 자바 버전 몇인가요?

 

퀴즈

대소문자를 구분하지 않고 문자열 내 특정 문자의 총 개수를 세려면, 어떤 방법이 가장 효율적일까요?

문자열을 반복하며 각 문자가 찾으려는 문자의 대문자 또는 소문자인지 모두 비교한다.

문자열 전체를 한 가지 케이스(예: 모두 대문자)로 통일한 후 해당 문자의 개수를 센다.

대문자와 소문자의 개수를 각각 세어 합산한다.

Set 자료구조를 사용하여 중복 없이 문자를 저장한 후 개수를 센다.

답변 1

0

str은 char 배열이므로 int와 타입이 맞지 않아서 생기는 오류아닌가요..?

for (char c : str) 로 수정 해보세요

2120110005님의 프로필 이미지
2120110005
질문자

자동 형변환 돼요.

제가 다시 보니 복붙을 잘 못했네요.

답변 감사합니다.

2120110005님의 프로필 이미지
2120110005

작성한 질문수

질문하기