我目前正在编写java,并且已被要求开发一个程序,该程序分析包含多个单词而没有标点符号的句子。当输入该句子中的单词时,程序会识别该单词出现在该字符串中的所有位置。
字符串示例:
不要问你的国家能为你做什么,问你可以为你的国家做些什么。
代码:
String Scan_word;
Scan_word = JOptionPane.showInputDialog("Word to be scanned for");
String Full_Scan;
Full_Scan = "You have entered " + Scan_word + " "; // the input dialog box will display this when a word is inputted
String sentence = "Ask not what your country should do for you but what you should do for you country"; //The sentence
JOptionPane.showMessageDialog(null, Full_Scan);
if (sentence.contains(Scan_word)); {
String[] sentenceWords = sentence.split(" ");
for (int i = 0; i < sentenceWords.length; i++) {
if (sentenceWords[i].equals(Scan_word)); {
} System.out.println(Scan_word + " is located in the: " + i + "th position");
}
所有代码都应该在静态空白部分中。
抱歉,它有编号评论。 PLS忽略了CAQ1STOPBLOCKINGTHEM标题,因为我的netbeans项目无缘无故被锁定。
答案 0 :(得分:2)
您的错误似乎与您的if
没有正确编写有关,实际上您在它之后放了一个分号意味着没有启动指令,而且您在大括号外打印消息,最后您应该打印i + 1
而不是i
的值,因为它从0
开始,所以您的代码应该是:
if (sentenceWords[i].equals(Scan_word)) {
System.out.println(Scan_word + " is located in the: " + (i + 1) + "th position");
}
考虑阅读一些关于java中命名约定的文章,例如this one。简而言之,可变名称应以小写字母开头。