找到Java中第n个字符的字符数?

时间:2016-04-20 09:21:21

标签: java string count character

在第n个单词之前找到句子中字符数的最简单方法是什么?

例如。 :

String sentence = "Mary Jane and Peter Parker are friends."
int trigger = 5; //"Parker"

输出

  

字符数= 20

任何帮助将不胜感激。 感谢。

3 个答案:

答案 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个单词。在您的情况下,它将匹配您想要的所有先前的单词并捕获下一个单词。