一尘不染

如何防止java.lang.String.split()创建前导空字符串?

java

传递0作为限制参数可以防止尾随空字符串,但是如何防止 前导 空字符串呢?

例如

String[] test = "/Test/Stuff".split("/");

结果是带有“”,“ Test”,“ Stuff”的数组。

是的,我知道我可以滚动自己的令牌生成器…但是StringTokenizer的API文档说

“ StringTokenizer是一个遗留类,出于兼容性原因保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人都使用拆分”


阅读 299

收藏
2020-09-08

共1个答案

一尘不染

您最好的选择可能只是删除任何领先的定界符:

String input = "/Test/Stuff";
String[] test = input.replaceFirst("^/", "").split("/");

您可以通过以下方法使它更通用:

public String[] mySplit(final String input, final String delim)
{
    return input.replaceFirst("^" + delim, "").split(delim);
}

String[] test = mySplit("/Test/Stuff", "/");
2020-09-08