0
 String text = "select ename from emp";

からの単語の後のスペースインデックスを知りたいです。どうやってするの?

4

3 に答える 3

1

非常に基本的な答えは次のようになります...

String text = "select ename from emp";

text = text.toLowerCase();
if (text.contains("from ")) {
    int index = text.indexOf("from ") + "from".length();
    System.out.println("Found space @ " + index);
    System.out.println(text.substring(index));
} else {
    System.out.println(text + " does not contain `from `");
}

または、正規表現を使用することもできます(これはかなり悪い例ですが、干し草です)

Pattern pattern = Pattern.compile("from ");
Matcher matcher = pattern.matcher(text);

String match = null;

int endIndex = -1;

if (matcher.find()) {

    endIndex = matcher.end();

}

if (endIndex > -1) {
    endIndex--;
    System.out.println("Found space @ " + endIndex);
    System.out.println(text.substring(endIndex));
} else {
    System.out.println(text + " does not contain `from `");
}

各スペースのインデックスを見つけるには、次のようなことを行うことができます...

Pattern pattern = Pattern.compile(" ");
Matcher matcher = pattern.matcher(text);

String match = null;

while (matcher.find()) {
    System.out.println(matcher.start());
}

どちらが出力されます

6
12
17
于 2012-10-04T05:11:13.390 に答える
1

「from」という単語の後の最初のスペースのインデックスを具体的に探している場合は、次を使用できます。

text.substring(text.indexOf("from")).indexOf(' ');

より一般的なことをしようとしている場合は、もう少し情報を提供する必要があります。しかし、indexOf()メソッドはおそらく非常に便利です。

編集:これは実際には

text.indexOf(' ', text.indexOf("from"));

最初のバージョンは「from」に関連するインデックスを返しますが、2番目のバージョンは元の文字列に関連するインデックスを返します。(@jpmに感謝)

このループは、指定された文字列内のすべてのスペース文字を検索します。

int index = text.indexOf(' ');
while (index >= 0) {
    System.out.println(index);
    index = text.indexOf(' ', index + 1);
}
于 2012-10-04T05:08:22.080 に答える
-2

indexOf()メソッドを使用します。あなたが答えを得たことを願っています

于 2012-10-04T05:11:55.323 に答える