2
String word="i love apples i love orange";
String w=scan.next();
    int index = word.indexOf(w);
    System.out.println (index);
while (index >= 0) {
    System.out.println(index);
    index = word.indexOf(w, index + 1);
}

だから私はこのコードが愛のインデックスが (2,17) であることを教えてくれることを知っていますが、私が探しているのは、単語のインデックスが (1,4) であることを返すことです。文字ではなく文字列内の文字列...また、上記のように見つけるたびにインデックスを示す必要があります

4

4 に答える 4

2

変数「単語」で単語がスペースのみで区切られている場合、そのようなコードを使用できます

String word="i love apples i love orange";
String w=scan.next();
String[] words = word.split(" ");
for (int i=0; i< words.length; i++){
    if (words[i].equals(w)){
        System.out.println(i);
    }
}

更新:単語を数えたい場合は、これを試してください-

String word="i love apples i love orange";
String w=scan.next();
String[] words = word.split(" ");
int count = 0;
for (int i=0; i< words.length; i++){
    if (words[i].equals(w)){
        System.out.println(i);
        count ++;
    }
}
System.out.println("Count = "+count);
于 2013-01-05T10:28:50.177 に答える
0

このコードは、出現するたびに段落 (str) 内の文字列 (needle) を見つけます。針にはスペースを含めることができ、単語インデックスは毎回出力されます。

String str = "i love apples i love orange";
String needle = "i love";
int wordIndex = 0;
for (int start = 0; start < str.length(); start++) {
  if (Character.isWhitespace(str.charAt(start))) wordIndex++;
  if (str.substring(start).startsWith(needle)) {
    System.out.println(wordIndex);
  }
}
于 2013-01-05T10:47:11.177 に答える
0

このコードは、単語内の入力の位置と、文字列内の単語の位置を見つけます。

public static void main(String[] args) {
    int lastIndex = 0;
    Scanner scan = new Scanner(System.in);
    String w = scan.next();

    String word = "i love apples i love orange";
    String[] tokens = word.split(" ");

    for (String token : tokens) {
        if (token.contains(w)) {
            for (int x = 0; x < token.length(); x++) {
                System.out.println("Input found in token at position: " + (token.indexOf(w) + 1));
            }

            System.out.println("Word found containing input in positions: " + (word.indexOf(token, lastIndex) + 1)
                    + "-" + ((word.indexOf(token, lastIndex)) + token.length()));
            lastIndex = ((word.indexOf(token,lastIndex)) + token.length());
        }
    }
}
于 2013-01-05T10:38:25.233 に答える