Java:为什么我的代码没有工作? charAt()的问题。

时间:2015-01-26 13:50:27

标签: java

以下是代码:

import java.util.Scanner;
public class Degrees
{

    private static Scanner keyboard = new Scanner(System.in);
    public static void main(String[]args)
    {
        System.out.println("Enter a sentence");
        String sentence = keyboard.nextLine();
        sentence = sentence.toLowerCase();
        if(sentence.indexOf("cat") != -1)
        {
            int lastInt = sentence.lastIndexOf("cat");
            lastInt= lastInt + 1;
            switch(charAt(lastInt))
            {
            case "":
            case ".":
            case ",":
            case "!":
            case "?":
            case "/":
            case ")":
            case "(":
                System.out.println("the profane word cat was found");

            }
        }
    }

}

问题是,charAt()出现错误。错误说,“方法charAt(int)未定义为Degrees类型”。我怎样才能摆脱这个错误以及导致它的原因?

有关代码的其他信息:

这段代码应该在句子中找到亵渎的单词cat。但是,如果亵渎的单词在单词中有例如连接,那么就不会检测到亵渎。此外,如果我们有字符串,“连接猫”,第二只猫不应被视为亵渎。您只负责评估单词的第一次出现。如果您有任何改进我的代码的建议,那么它应该做它应该做的事情,请随时告诉我如何改进它。

3 个答案:

答案 0 :(得分:1)

您必须将charAt()方法应用于您的案例中的字符串,句子;)

答案 1 :(得分:1)

问题在于范围,或者你对它缺乏了解。

charAt(index)

以上范围是默认范围,即您定义的类Degrees的范围。您尚未定义方法charAt

正确答案是通过添加正确的调用引用来调整调用范围:

sentence.charAt(index)

答案 2 :(得分:0)

你有两个问题:

      int lastInt = sentence.lastIndexOf("cat");
        lastInt= lastInt + 1;
        switch(charAt(lastInt))
需要在charAt上调用

sentance。并且,假设您想在 "cat"之后查看字符,您需要将"cat"的长度添加到索引中,因为它指向找到的子字符串的开头

      int lastInt = sentence.lastIndexOf("cat");
        lastInt= lastInt + "cat".length();
        switch(sentence.charAt(lastInt))