在Java中查找到第n个单词的字符数?

在Java中查找到第n个单词的字符数?,java,string,count,character,Java,String,Count,Character,找到第n个单词前句子中字符数的最简单方法是什么 例如: String sentence = "Mary Jane and Peter Parker are friends." int trigger = 5; //"Parker" 产出将是 字符数=20 任何帮助都将不胜感激。 谢谢。最简单的方法就是在字符串中的字符周围循环并计算空格的数量 下面为每个字符增加一个长度变量。当遇到一个空格时,我们会减少剩余的要读取的空格的数量,当这个数字达到1时,这意味着我们找到了想要的单词,所以我们打破了循环

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

例如:

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

字符数=20

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

最简单的方法就是在字符串中的字符周围循环并计算空格的数量

下面为每个字符增加一个
长度
变量。当遇到一个空格时,我们会减少剩余的要读取的空格的数量,当这个数字达到1时,这意味着我们找到了想要的单词,所以我们打破了循环

public static void main(String[] args) {
    String sentence = "Mary Jane and Peter Parker are friends.";
    int trigger = 5; //"Parker"

    int length = 0;
    for (char c : sentence.toCharArray()) {
        if (trigger == 1) break;
        if (c == ' ') trigger--;
        length++;
    }
    System.out.println(length); // prints 20
}

最简单的方法就是循环字符串中的字符并计算空格数

下面为每个字符增加一个
长度
变量。当遇到一个空格时,我们会减少剩余的要读取的空格的数量,当这个数字达到1时,这意味着我们找到了想要的单词,所以我们打破了循环

public static void main(String[] args) {
    String sentence = "Mary Jane and Peter Parker are friends.";
    int trigger = 5; //"Parker"

    int length = 0;
    for (char c : sentence.toCharArray()) {
        if (trigger == 1) break;
        if (c == ' ') trigger--;
        length++;
    }
    System.out.println(length); // prints 20
}

使用正则表达式可以这样做:

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

使用正则表达式可以这样做:

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);
}
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);

}`
我正在经历所有的麻烦,寻找准确的工作,而不是简单地
indexOf(“Parker”)
,因为可能存在重复

正则表达式将匹配N个单词而不捕获和捕获N+1个单词。在您的情况下,它会将前面的所有单词匹配到您想要的单词,并捕获下一个单词。

public int getNumberOfCharacters(int nthWord){
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);

}`
String语句=“玛丽·简和彼得·帕克是朋友。”; String[]wordArray=句子.split(“”); 整数计数=0; 对于(int i=0;i
public int getNumberOfCharacters(int n字){
String语句=“玛丽·简和彼得·帕克是朋友。”;
String[]wordArray=句子.split(“”);
整数计数=0;
对于(int i=0;i