如何在Java中快速拆分字符串?

时间:2017-12-01 10:14:04

标签: java split

我必须定期将消息与" @"分开。我必须用第一个@符号分隔部分,但我有一些速度问题。 我可以使用代码更轻松地解释它:

String mymessage = "java@hel@@lo @world!@@@";
String[] mysplit = fastlySeparateFunc(mymessage);
System.out.println(mysplit[0]);
System.out.println(mysplit[1]);

/*
and output must be like this :
java
hel@@lo @world!@@@
*/

我怎么写呢? (fastlySeparateFunc)

2 个答案:

答案 0 :(得分:3)

关于最快的速度,您可以使用String.indexOf

int pos = mymessage.indexOf('@');
String[] mysplit = {mymessage.substring(0, pos), mymessage.substring(pos+1)};

但我怀疑它会明显快于:

String[] mysplit = mymessage.split("@", 2);

我怀疑使用indexOf可能稍微更快,因为您不必使用完整的正则表达式机制。但我认为差异很小。

答案 1 :(得分:0)

您可以将String转换为StringTokenizer对象并将其拆分为分隔符'@'

StringTokenizer str=new StringTokenizer(mymessage,'@');