0
 String text = "select ename from emp";

我想知道from之后的空间索引。怎么做?

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”的索引,而第二个版本返回相对于原始字符串的索引。(感谢@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 回答