.indexOf“-1”被我的if语句跳过

时间:2013-11-03 19:20:09

标签: java indexof

在这里,我将一个字符串分隔成单独的单词,然后将"ay"添加到每个单词的末尾(如果它包含元音),但问题是当我到达最后一个单词indexOf时{{1}因此我的if语句会自动跳过它。为了解决这个问题,我尝试添加-1但是当我使用调试器逐步执行它时,它会自动跳过这个if语句!有人知道为什么吗?如何处理此问题并将if (i ==-1)添加到最后一个单词即使"ay"

方法:

.indexOf is -1

主:

    public static void pigLatin(String sentence){
    sentence = sentence.trim();

    if(sentence.length()> 0){
        int i = sentence.indexOf(" ");
        String word = sentence.substring(0, i);
        if(i == -1){ //this  if statement is ignored
            if (word.contains("a") || word.contains("i") || word.contains("o") || word.contains("e") || word.contains("u")){
                System.out.println(word + "ay");
            } else{
                System.out.println(word);
            }
        }
        if(i != -1){
            if(word.contains("a") || word.contains("i") || word.contains("o") || word.contains("e") || word.contains("u")){
                System.out.println(word + "ay");
                pigLatin(sentence.substring(i));
            } else if(!word.contains("a") || !word.contains("i") || !word.contains("o") || !word.contains("e") || !word.contains("u")){
                System.out.println(word);
                pigLatin(sentence.substring(i));
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

我看到两个问题。

  • pigLatin(sentence.substring(i))的两行应该说pigLatin(sentence.substring(i+1)) - 否则你只是一遍又一遍地看到相同的空格。
  • else if(!word.contains("a") || ...的行只能说else,但如果你坚持写完全,那么你必须使用&& ||