Как оптимизировать под регулярным выражением, поскольку мне нужно запустить его более миллиарда записей

String test = "source[{\"name\": \"Mokole\", \"country\": \"CD\",\"location\": {\"lat\": .033333, \"lon\": -.583333}}]}\n";

String result = test.replace(" ."," 0.").replace("-.","-0.");
-2
rohit 28 Окт 2015 в 09:50

2 ответа

Лучший ответ
String result = test.replaceAll("([ -])\\.","$1\\0.")

Вы можете объединить регулярные выражения 2 в 1.

2
vks 28 Окт 2015 в 06:57

так как я должен запустить его для миллиарда записей ==> Тогда НЕ используйте replaceAll(), который создает шаблон каждый раз, когда вы его вызываете.

Создайте static Pattern, используя ту же строку регулярного выражения, используя Pattern.compile. Затем для каждого ввода String вызовите pattern.matcher(inputString). Затем вызовите метод matcher.replaceAll().

PS: используйте регулярное выражение, упомянутое VKS в его ответе

1
TheLostMind 28 Окт 2015 в 07:08