在第n个单词之前找到句子中字符数的最简单方法是什么?
例如。 :
String sentence = "Mary Jane and Peter Parker are friends."
int trigger = 5; //"Parker"
输出
字符数= 20
任何帮助将不胜感激。 感谢。
答案 0 :(得分:1)
最简单的方法就是循环字符串中的字符并计算空格的数量。
以下为每个字符增加res = reshape(reshape(A,[],size(A,3))*c(:),size(A,1),[])
变量。当遇到白色空格时,我们减少要读取的剩余空格的数量,当该数字达到1时,这意味着我们点击了想要的单词,所以我们突破了循环。
length
答案 1 :(得分:1)
public int getNumberOfCharacters(int nthWord){
String sentence = "Mary Jane and Peter Parker are friends.";
String[] wordArray = sentence.split(" ");
int count = 0;
for(int i=0; i<=nthWord-2 ; i++){
count = count + wordArray[i].length();
}
return count + (nthWord-1);
}`
试试这个应该有效
答案 2 :(得分:0)
使用正则表达式可以这样做:
public static void main(String[] args) {
String sentence = "Mary Jane and Peter Parker are friends.";
int trigger = 5;
Pattern pattern = Pattern.compile(String.format("(?:\\S+\\s+){%d}(\\S+)", trigger - 1));
Matcher matcher = pattern.matcher(sentence);
matcher.find();
System.out.println(matcher.group().lastIndexOf(" ") + 1);
}
由于可能存在重复问题,我正在经历所有找到确切工作而不仅仅是indexOf("Parker")
的麻烦。
正则表达式将匹配N个单词而不捕获并捕获N + 1个单词。在您的情况下,它将匹配您想要的所有先前的单词并捕获下一个单词。