何时使用:使用分隔符进行子串或拆分?哪个更好?

时间:2013-09-09 19:56:55

标签: java split comparison substring delimiter

在我最近的经历中,我使用了分割使用分隔符和子字符串函数。只是想知道是否有人可以说明哪一个更好,在什么条件下?

编辑:

我主要担心的是这些功能对性能和代码质量的影响。 (如果我可以使用其中任何一个,哪个应该是首选?如果有任何其他决定因素,请提及。)

在旁注中,与一位同事说过他对使用子字符串感到不舒服。这就是让我思考的原因..

仅供参考,我有一个包含URL的长ID,以及我需要分别获取和存储的两个不同的ID。 URL总体上是相同的,每个ID的长度相同,因此长度和索引将保持不变,因此我知道确切的索引位置,并且我还有之类的字符我可以用作分隔符的ID。 ID类似于:

http://xyz.com#12345#ASDFG

所以,我有一个选择。我使用拆分使用分隔符,但想知道什么是更好的选择。

3 个答案:

答案 0 :(得分:3)

没有什么比这更好的了。两者都同样好,但它主要取决于你使用它的场景。

当您知道索引时使用substring

split()在内部创建Pattern.compile,这是一项昂贵的操作。同样.split()将字符串作为参数,但此字符串被解释为Pattern

答案 1 :(得分:2)

这一切都取决于工作的正确工具是什么,天气与否,你可以预先确定在哪里拆分字符串!

Split将创建一个字符串数组,每个元素包含您选择分隔的字符之间的值。

Substring将根据您提供的索引返回部分字符串值。

至于适用的情况,请查看由dasblinkenlight提供的great explanation

答案 2 :(得分:1)

如果您知道索引,那么最好使用subString(),因为spilt()创建了一个字符串数组