在我最近的经历中,我使用了分割使用分隔符和子字符串函数。只是想知道是否有人可以说明哪一个更好,在什么条件下?
编辑:
我主要担心的是这些功能对性能和代码质量的影响。 (如果我可以使用其中任何一个,哪个应该是首选?如果有任何其他决定因素,请提及。)
在旁注中,与一位同事说过他对使用子字符串感到不舒服。这就是让我思考的原因..
仅供参考,我有一个包含URL的长ID,以及我需要分别获取和存储的两个不同的ID。 URL总体上是相同的,每个ID的长度相同,因此长度和索引将保持不变,因此我知道确切的索引位置,并且我还有#之类的字符我可以用作分隔符的ID。 ID类似于:
http://xyz.com#12345#ASDFG
所以,我有一个选择。我使用拆分使用分隔符#,但想知道什么是更好的选择。
答案 0 :(得分:3)
没有什么比这更好的了。两者都同样好,但它主要取决于你使用它的场景。
当您知道索引时使用substring
。
split()
在内部创建Pattern.compile
,这是一项昂贵的操作。同样.split()
将字符串作为参数,但此字符串被解释为Pattern
答案 1 :(得分:2)
这一切都取决于工作的正确工具是什么,天气与否,你可以预先确定在哪里拆分字符串!
Split
将创建一个字符串数组,每个元素包含您选择分隔的字符之间的值。
Substring
将根据您提供的索引返回部分字符串值。
至于适用的情况,请查看由dasblinkenlight提供的great explanation。
答案 2 :(得分:1)
如果您知道索引,那么最好使用subString()
,因为spilt()
创建了一个字符串数组