给定英文句子,编写方法void wordPositions(String sentence),该方法中计算sentence中的每个单词在句子中的起始位置和单词长度并输出。假设句子中只包含英文字母和空格,且单词不重复。
更新方法可以实现 查找重复单词出现的位置坐标 用正则的方法来统计第几次出现
import java.util.Scanner;
import java.util.regex.*;;
public class Main {
//子字符串modelStr在字符串str中第count次出现时的下标
static int getFromIndex(String str, String modelStr, Integer count) {
Matcher slashMatcher = Pattern.compile(modelStr).matcher(str);
int index = 0;
while(slashMatcher.find()) {
index++;
if(index == count){
break;
}
}
return slashMatcher.start();
}
static void wordPositions(String sentence) {
String[] strings = sentence.split(" ");
int[] num = new int[100];
for(int i = 1;i < strings.length;i++) {
int cnt = 0;
for(int j = 0;j < i;j++) {
if(strings[i].equals(strings[j]))
cnt++;
}
num[i] = cnt+1;
}
num[0] = 1;
int i = 0;
while(i < strings.length) {
System.out.println(strings[i]+": "+getFromIndex(sentence,strings[i],num[i])+", "+strings[i].length());
i++;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s1 = new Scanner (System.in);
String string = s1.nextLine();
wordPositions(string);
}
}