Java按令牌拆分字符串



以下代码:

String str = "She is a girl";
String[] substr = str.split("is");

substr[1]的输出是"a girl"。但我的预期是输出"是一个女孩"。我怎么解决这个问题?我可以根据token的索引拆分字符串吗?

使用正向向前看标记

String[] substr = str.split("(?=is)");

str.substring(str.indexOf("is"))

如果你想获得字符串的第一部分,你可以调用str.substring(0, str.indexOf("is"))

编辑:看看@Codebender的答案

由于split方法排除了令牌,因此程序的输出是正确的。根据您的需要,您可以使用substringindex代替split,如下所示

String str = "She is a girl";
String substr1 = str.substring(str.indexOf("is"), str.length);

如果需要获取字符串的一部分,则首选substring。当您需要根据token将字符串拆分为多个字符串时,Split是很好的。

如果你想只使用分割或有多个标记,并希望包含标记,你可以使用forward标记

您可以使用replaceFirst

string.replaceFirst(".*?\b(is)\b", $1);
演示

相关内容

  • 没有找到相关文章

最新更新