【发布时间】:2015-10-09 02:23:26
【问题描述】:
以下代码:
String str = "She is a girl";
String[] substr = str.split("is");
substr[1] 的输出是“一个女孩”。但我的预期是输出“是一个女孩”。我该如何解决这个问题?我可以根据token的索引拆分字符串吗?
【问题讨论】:
以下代码:
String str = "She is a girl";
String[] substr = str.split("is");
substr[1] 的输出是“一个女孩”。但我的预期是输出“是一个女孩”。我该如何解决这个问题?我可以根据token的索引拆分字符串吗?
【问题讨论】:
使用积极的前瞻标记。
String[] substr = str.split("(?=is)");
【讨论】:
str.substring(str.indexOf("is"))
如果你想获取字符串的第一部分,你可以调用str.substring(0, str.indexOf("is"))
编辑:查看@Codebender 的答案 更适合这个问题。
【讨论】:
string.substring(x) 等于 string.substring(x, string.length())
由于拆分方法不包括令牌,因此您的程序输出是正确的。对于您的需要而不是 split ,您可以使用 substring 和 index 如下
String str = "She is a girl";
String substr1 = str.substring(str.indexOf("is"), str.length);
如果您需要获取字符串的一部分,请首选子字符串。当您需要根据令牌将字符串分成多个字符串时,拆分是很好的选择。
如果你想只使用 split 或者有多个令牌并且还想包含令牌,你可以使用look ahead token
【讨论】:
【讨论】: