Java: заменить определенное слово другим содержимым без изменений - PullRequest
0 голосов
/ 07 марта 2019

Я новичок здесь, и вы бы хотели мне помочь?

Могут быть строки типа

389 392 "увеличительное стекло" 1 0 4 392 6616 0 8529270 0 |

390 391 "стойка для оружия" 1 0 6 391 6630 0 6800 0 |

391 391 "стойка для оружия" 1 0 6 390 6631 0 6800 0 |

Хочувычесть 20 из второго числа.

Как

390 391 "Armourstand" 1 0 6 391 6630 0 6800 0 |

До

390 371 "Armourstand" 1 0 6 391 6630 0 6800 0 |

Но я не знаю, как это сделать.

Я могу получитьвторое число, тогда я не знаю, как с ним делать.В этой строке могут быть одинаковые цифры, но я просто хочу заменить второе число.

Большое спасибо.

=========================================================================== update

 Pattern p = Pattern.compile("^(\\d+)\\s+3(9)[0-2]\\s\S+\\s+(1)\\s+\\d\\s+6") ;
            Matcher m = p.matcher("6621   391   \"weaponrack\"   1   0   6   371   6631   0   6800   0   |") ;

Я хочу что-то вроде этого

m.group(2).replace(7);

Но я мог бы найти подобный метод.

Iв некоторых документах говорится, что мы можем использовать «$» для получения ссылки на группу, и это не объясняет больше.

Ну, я читаю строки из текста и использую "^ (\ d +) \ s + 3 (7) 0-21 (\ s + \ d \ s +) 6", чтобы найти совпавшую строку.И тогда мне нужно заменить 39 [0-2] на 37 [0-2].Это можно сделать минус 20 или другими способами, которые меня не волнуют.

1 Ответ

0 голосов
/ 07 марта 2019

Ну, @ Ctorres дает мне представление.

Когда я получу совпавшую строку, поместим ее в массив символов.

Сначала мы пропускаем первое число в массиве и пробелы.

Затем измените char '9 'на' 7 '.

Но я думаю, что это действительно сложно.

...