Java

KH 교육원 개발자 교육과정 (6일차) 배열 실습

최종군 2024. 6. 18. 21:39

 

 

5번 문제는 문자열을 Scanner를 통해서 입력을 받아 하나하나를 배열에 넣고

검색할 문자를 문자열에서 찾는 문제이다  

 

public void practice5() {

Scanner sc = new Scanner(System.in);   // Scanner 생성 

System.out.print("문자열 : "); // 문자를 입력을 할수 있게 문자열 구조 next(); 
String str = sc.next();

System.out.print("문자열 : "); 
String strch = sc.next();    // 문자열을 입력을 하고 입력한 문자를 출력하기 위한 작업
char ch = strch.charAt(0); // 문자열에 입력된 문자를 꺼내기 위해서  // char 자료형 = strch.charAt();

// 입력 받은 문자열을 배열에 문자 하나하나 저장 => 문자형 배열

// 문자열의 길이 : 문자열_변수/ 값.length()
// 배열 길이 : 배열_변수/ 값.length()

char[] arrch = new char[str.length()]; // 배열은 char형 자료형에 배열 안에는 문자열이 입력될 [str.length()]

 

char[] arrch = new char[str.length()]

 



for (int i = 0; i < arrch.length; i++) {  
arrch[i] = str.charAt(i); // arrch[i] = str.charAt(i)
}                           // 반복문이 조건에 따라 수행을 하면서 i초기값 0 부터 인덱스 0부터 char 자료형

str.charAt(i)를 따라 입력을 받게 된다. 

System.out.printf("%s에 %c가 존재하는 위치(인덱스) :", str, ch);



int count = 0; // 문자열에 포함된 글자 중 문자형을 선택해서 몇 개가 들어있는지 확인을 위해서

char 갯수를 세어줄 int 정수 자료형 int count를 데이터 값을 0으로 선언한다 

for (int i = 0; i < arrch.length; i++) { 
if (arrch[i] == ch) {                               // for문은 i가 arr.length; 만큼 조건을 만족할 때 까지 반복 수행한다. 
count++;                                              // 이때 arrCh 배열 안에 있는 글자와 ch가 입력된 갯수가 같을 때 
System.out.print(i + " ");                       // 증감 연산자를 이용한 count++; 수행을 한다 
}                                                            // 밑 프린트 메서드 안에 i를 넣었다 반복문이 0부터 수행이 되는 동안 
}                                                            //  조건이 참일 때 if문이 수행을 하므로 카운터가 수행하는 
System.out.println();                                // arrCh[] 배열 i 인덱스 값 때 조건을 수행을 한다 
System.out.print(ch + "의 갯수 : " + count);
}