String text = "select ename from emp";
我想知道后面的空格索引。怎么做?
答案 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()方法。希望你能得到答案