我知道toCharArray()
方法,但我對正則表達式感興趣。我有問題要問你大約兩個正則表達式的速度:查找字符串中的所有字母與正則表達式
String s = "123456";
// Warm up JVM
for (int i = 0; i < 10000000; ++i) {
String[] arr = s.split("(?!^)");
String[] arr2 = s.split("(?<=\\G.{1})");
}
long start = System.nanoTime();
String[] arr = s.split("(?!^)");
long stop = System.nanoTime();
System.out.println(stop - start);
System.out.println(Arrays.toString(arr));
start = System.nanoTime();
String[] arr2 = s.split("(?<=\\G.{1})");
stop = System.nanoTime();
System.out.println(stop - start);
System.out.println(Arrays.toString(arr2));
輸出:
Run 1:
3158
[1, 2, 3, 4, 5, 6]
3947
[1, 2, 3, 4, 5, 6]
Run 2:
2763
[1, 2, 3, 4, 5, 6]
3158
[1, 2, 3, 4, 5, 6]
2的正則表達式都在做同樣的工作。爲什麼第一個正則表達式比第二個正則表達式更快? 。感謝您的回答。
看看[我如何寫一個正確的micro-benchmark-in-java](http://stackoverflow.com/questions/504103/how-do-i-write-a -correct-micro-benchmark-in-java) – Pshemo
感謝你的關注。你是正則表達式的愛好者:)你知道哪個正則表達式更快,並解釋爲什麼? –
如果您有答案,請分享@Sniffer –