我试图在不使用split方法的情况下从字符串中拆分子字符串,如下所示:
private String getSequence(String what, String start, String end){
return what.substring(what.indexOf(start), what.indexOf(end));
}
例如,我使用字符串"<_id 2211 _id>"
,如下所示:
getSequence("<_id 2211 _id>","<_id 2211 _id>".indexOf("<_id ","<_id 2211 _id>".indexOf(" _id>")
我的预期输出为" 2211 "
,但实际输出为"<_id 2211 "
答案 0 :(得分:1)
你需要改变你的回归
return what.substring(what.indexOf(start), what.indexOf(end));
要
return what.substring(what.indexOf(start) + start.length(), what.indexOf(end));
因为indexOf会在你的情况下返回0,因为它找到匹配的字符串“&lt; _id”
请注意:确保如果你的字符串中不存在模式,那么index将返回-1并且可能抛出StringIndexOutOfBoundException或者可能会给出意想不到的结果,现在你将进行添加。所以你应该事先验证它,indexOf都不会给你-1。
答案 1 :(得分:0)
将子字符串的第一个参数更改为what.indexOf(start) + start.lenght()
。我会留给你弄清楚这种溶液是如何起作用的。