당신이 쓴 : 공백없이 문장의 프로그램 점검이 내가 점점 오전 오류 스택이다 유효한 영어 단어
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class WordCheckUtil{
boolean dictionaryContains(String word)
{
List<String> dictionary = new ArrayList<String>(Arrays.asList("mobile","samsung","sam","sung",
"man","mango", "icecream","and",
"go","i","love","ice","cream"));
if(dictionary.contains(word))
return true;
return false;
}
void wordCheck(String str){
wordBreakCheck(str,str.length(),"");
}
void wordBreakCheck(String str, int length, String result){
System.out.println(str+" "+length+" "+result);
for (int i = 1; i <= length; i++) {
String prefix = str.substring(0, i);
System.out.println(prefix);
if(dictionaryContains(prefix)){
if(i == length){
result += prefix;
System.out.println("--> "+result);
return;
}
System.out.println(i+" -- "+length);
String subStr = str.substring(i,length-i);
wordBreakCheck(subStr,length-i,result+prefix+" ");
}
}
}
public static void main(String[] args) {
WordCheckUtil wr = new WordCheckUtil();
wr.wordCheck("iloveice");
}
}
의 사전과 일치하는 단어를 추출하는
을
str.substring(i,length-i);
i
한 번에 증가 i
은> = length - i
입니다.
확실한 질문 : 어떤 줄이'WrodCheckUtil.java : 36'입니까? –
디버거를 사용하는 법을 배우는 시간 - 문제가 명확 해집니다. –
이 오류가 발생하기 전에 "i"와 "length"값이 4와 7 인 디버거를 검사했습니다. – shailbenq