заменить содержимое после вкладок 5 и 6 (регулярное выражение) - PullRequest
0 голосов
/ 13 марта 2012

Я получил данные с широтой и долготой, если они неизвестны, это -1 для широты и -1 для долгого времени, а затем я получаю правильное местоположение. После этого я хочу снова сохранить файл с правильными значениями lat и long, чтобы избежать ежедневного лимита запросов. Однако в целях обучения и эффективности я не хочу делать это как

id+"\t"+region+"\t"+ etc...

Вот так выглядят линии:

5   Canada  British Colombia    Vancouver   -1  -1

Полагаю, это возможно с

lines[i].replaceAll("regex", lat);
lines[i].replaceAll("regex", lon);

или, может быть, даже в одну строку.

Каким должно быть регулярное выражение?

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Вы можете сделать это с:

line.replaceAll("^((?:[^\t]*\t){4})[^\t]*", "$1" + lat);
line.replaceAll("^((?:[^\t]*\t){5})[^\t]*", "$1" + lon);

Или оба с одним:

line.replaceAll("^((?:[^\t]*\t){4})[^\t]*\t[^\t]*", "$1" + lat + "\t" + lon);
1 голос
/ 13 марта 2012

Однако, с целью обучения и эффективности, я не хочу делать это как

 id+"\t"+region+"\t"+ etc..

Это лучший подход, я думаю, когда вы стремитесь к эффективности. Еще более эффективным может быть использование StringBuilder с предопределенным размером.

StringBuilder sb = new StringBuilder(line.length() + 15);
sb.append(id);
sb.append('\t');
sb.append(region);
// ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...