여기에서이 문제에 대한 해결책을 보았지만 인원 코드는 내 것과 다릅니다. 나는 내가 뭘 잘못하고 있는지 알고 싶다. 나는 프로그래밍에 익숙하지 않고 좋은 일이 절실합니다.문자열에서 지정된 문자의 발생 횟수를 찾는 재귀
질문 : (문자열에서 지정된 문자의 발생 수) 다음 헤더 사용하여 문자열에서 지정된 문자의 발생 횟수 발견 재귀 방법을 쓰기 : 예를 들어
public static int count(String str, char a)
을 : count("Welcome", 'e')
반환 2
. 사용자에게 문자가 따라 오는 문자열을 입력하고 문자열에있는 문자의 발생 횟수를 표시하도록하는 테스트 프로그램을 작성하십시오. 내 코드와
문제 : 스레드에서
이예외 "주요"java.lang.StringIndexOutOfBoundsException : 문자열 색인이 범위를 벗어 : -1
내 코드 :
import java.util.Scanner;
public class Exercise18_10{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Please enter a string");
String str = input.next();
System.out.println("Please enter a character");
char car = input.next().charAt(0);
int x = count ("welcome", 'e');
System.out.println("The number of character " +car + " in string " +str + " = "+ x);
}//main
public static int count(String str, char a){
int ct = 0;
if(str.length()>0)
if(str.charAt(0) == a)
ct ++;
count(str.substring(1),a);
return ct;
}
}
제발 도와주세요, 내가 뭘 잘못하고있어?
코드를 형식화하는 법을 배우십시오. – nhouser9
한 가지 문제는'ct'에 추가하는 대신'count'에 대한 재귀 호출의 결과를 버리고 있다는 것입니다. –
분기 나 루프의 경우'{'와'} '문자를 사용하여 항상 ** ** 항상 **의 습관을 습득하는 것이 좋습니다. '{'와'} '문자를 여기 코드의 적절한 위치에 넣으면, 문제가 무엇인지 즉시 알 수있을 것입니다. –