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

标签 java string

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

例如

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

生成一个包含“”、“Test”、“Stuff”的数组。

是的,我知道我可以推出自己的 Tokenizer...但是 StringTokenizer 的 API 文档说

"StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split"

最佳答案

您最好的选择可能是去掉任何前导分隔符:

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", "/");

关于java - 如何防止 java.lang.String.split() 创建前导空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9389503/

相关文章:

java - 从动态页面获取HTML代码

Java Switch 语句,一起使用 case 值?

Java 字符串拆分问题

java - 为什么我的字符串不是固定大小?

java - 将文件列出到字符串数组并从 FTP 服务器列出文件

java - Jersey JAX-RS 注释接口(interface)而不是实现类会导致错误

Java 日志记录全局记录器

java - ToString StringBuilder 不显示

c - 如何在单词前插入2个字符

c++ - 在(私有(private))继承的 vector<string> 上获取迭代器