以下代码:
String str = "She is a girl";
String[] substr = str.split("is");
substr [1]的输出是"一个女孩"。但我的预期是输出"是一个女孩"。我怎么解决这个问题?我可以根据令牌索引来分割字符串吗?
答案 0 :(得分:4)
使用正向前瞻标记。
String[] substr = str.split("(?=is)");
答案 1 :(得分:3)
str.substring(str.indexOf("is"))
如果您想获得字符串的第一部分,可以致电str.substring(0, str.indexOf("is"))
编辑:查看@Codebender的答案 它更适合这个问题。
答案 2 :(得分:0)
由于split方法排除了令牌,因此程序的输出是正确的。根据您的需要而不是split
,您可以使用substring
和index
,如下所示
String str = "She is a girl";
String substr1 = str.substring(str.indexOf("is"), str.length);
如果需要获取字符串的一部分,则首选子字符串。当你需要根据令牌将字符串分成多个字符串时,拆分是很好的。
如果您只想使用拆分或拥有多个令牌,并且还希望包含令牌,则可以使用look ahead token
答案 3 :(得分:0)