输入一个英文句子,例如“this is a book.”以看到句子是"."来作为结束符号的,并且单词之间以一个空格来分隔,接着再输入一个单词A,请找出首次在句子中出现的与A相同的单词是句子中的第几个单词,若不存在,则输出该句子中单词字符的总个数。
时间: 2024-09-21 13:12:40 浏览: 57
要实现这个功能,你可以使用Java的String和List数据结构来处理字符串。首先,你需要分割句子成单词列表,然后遍历列表查找目标单词A的索引。如果找不到,就计算单词总数。以下是一个简单的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class WordFinder {
public static void main(String[] args) {
String sentence = "This is a book.";
String targetWord = "is";
// 分割句子为单词列表
List<String> words = splitSentence(sentence);
// 查找目标单词并返回索引或单词总数
int index = findWordIndex(words, targetWord);
System.out.println(index);
}
private static List<String> splitSentence(String sentence) {
return new ArrayList<>(Arrays.asList(sentence.split("\\s+")));
}
private static int findWordIndex(List<String> words, String targetWord) {
for (int i = 0; i < words.size(); i++) {
if (words.get(i).equals(targetWord)) {
return i + 1; // 从0开始计数,所以加1
}
}
return words.size();
}
}
```
在这个代码中,`splitSentence`方法使用正则表达式`\s+`来分割句子,`\s`匹配一个空白字符(包括空格、制表符和换行符),`+`表示一个或多个这样的字符。
`findWordIndex`方法遍历单词列表,如果找到目标词,返回其索引(注意加1是因为我们是从0开始计数的)。如果没有找到,返回单词总数,即列表的大小。
运行此程序,输入"book."作为句子和"a"作为目标单词"A",你会得到结果是2,因为"book"是第一个出现的与"a"相同的单词,在句子中的第二个位置(索引从1开始)。如果输入的句子中没有"A",结果将是7,因为单词总共有7个字符。
阅读全文