当前位置: 首页 > 面试题库 >

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

令狐跃
2023-03-14
问题内容

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

例如

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

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

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

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


问题答案:

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

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


 类似资料:
  • 我试图将每个列表都位于嵌套对象内的webservice模型映射到更简单的对象。 模型1 映射非常简单: 映射工作正常,除了一个问题。当我将带有null子级的父母映射到父母2并返回父母时,儿童对象是用空列表创建的。有什么方法可以防止这种情况吗?

  • 问题内容: 在此处输入图片说明我一直在从事个人项目,以使编程更好。我的目标是使其更加强大,我才刚刚开始。我目前是计算机 科学专业的学生。无论如何,我正在如图所示制作程序的一部分。我计算小时工资,并提供一些尚未执行的输出。我正在使用DocumentListener,它将自动进行计算。将文本从框中完全删除时出现错误,我尝试使用if语句修复它: 这是我到目前为止所拥有的。还没有完成,对于新手代码,我深表

  • 这是我目前所掌握的。它还没有完成,我为noob代码道歉。我从两个月前开始实际编码。 }

  • 问题内容: 我正在编写一个在Linux上运行的Java应用程序(使用Sun的JDK)。它一直在创建目录,我想防止这样做。有什么方法可以阻止Java创建这些文件? 问题答案: 尝试JVM选项 -XX:-UsePerfData 更多信息 来自链接https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html的以下内容可能会有所帮

  • 问题内容: 请看下面的简化示例: 这打印出来,但我希望所选的html部分照原样打印:。我如何告诉jsoup不要转换’<’符号? 问题答案: 可以使用jsoup。 使用jSoup 1.8.3,可以使用保留原始html的Parser.unescapeEntities方法。 在某些以前的版本中,不存在此方法。 从此链接了解更多信息。

  • 我已经在继承代码上工作了几天了,我正试图了解maven是如何工作的,以及为什么要按原样配置项目。该项目使用Jetty作为http服务器,并提供Angular应用程序,此外还使用Jersey为Angular应用程序提供RESTfulendpoint。项目目录为: 作为部署过程的一部分,我被告知设置maven,以便将项目打包为. war。为此,我有以下内容: 当我运行mvn安装时,在我的src/mai