假设我有一个字符串String s = "0123456789t:9876543210"
如何在"t:"
之后立即得到索引(即索引12)?
是否有内置方式,还是我坚持使用s.substring(s.indexOf("t:")+2);
?
具体来说,我想要任何令牌长度的解决方案。我的令牌可能是t:
,也可能很容易test:
。无论令牌本身如何,有没有办法在我搜索的任何令牌之后立即动态获取索引?
答案 0 :(得分:2)
您可以像这样使用IndexOf:
s.indexOf(s + ":")+2
答案 1 :(得分:2)
这是查找索引的正确方法。
来自Javadocs,
返回第一次出现的字符串中的索引 指定的子字符串。返回的整数是最小值k 的是:
this.startsWith(str, k)
为了使其具有动态性,请使用此类结构。
public static void main(String[] args) {
String s = "0123456789t:9876543210";
System.out.println(getIndex("t:", s));
s = s.substring(s.indexOf("t:") + 2);
System.out.println(s);
}
private static int getIndex(String searchedText, String inputText) {
return inputText.indexOf(searchedText) + searchedText.length();
}
<强>输出强>
12
9876543210
答案 2 :(得分:0)
为什么不把它全部模块化,有一个字符串的arraylist,所有命令都可以做到:
ArrayList<String> al = new ArrayList<String>();
String s = "123456789t:987654321";
al.add("t:");//this is where you add your cases
for(String c:al){
System.out.println(s.substring(s.indexOf(c) + c.length));
}
那样的情况下,案件的长度不能搞乱b / c它是字符串类的一部分