在java中的特定字符串后搜索空格

时间:2012-10-04 05:05:49

标签: java

 String text = "select ename from emp";

我想知道后面的空格索引。怎么做?

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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

答案 2 :(得分:-2)

使用indexOf()方法。希望你能得到答案