String text = "select ename from emp";
我想知道from之后的空间索引。怎么做?
非常基本的答案可能看起来像......
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
如果您专门寻找单词“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);
}
使用 indexOf() 方法。希望你得到答案