以下是代码:
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。但是,如果亵渎的单词在单词中有例如连接,那么就不会检测到亵渎。此外,如果我们有字符串,“连接猫”,第二只猫不应被视为亵渎。您只负责评估单词的第一次出现。如果您有任何改进我的代码的建议,那么它应该做它应该做的事情,请随时告诉我如何改进它。
答案 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))