我是新来的,您想帮我吗?
可能会有
这样的行389392“放大镜” 1 0 4 392 6616 0 8529270 0 |
390391“装甲站” 1 0 6 391 6630 0 6800 0 |
391391“武器架” 1 0 6 390 6631 0 6800 0 |
我想从第二个数字中减去20。
像
390391“装甲站” 1 0 6 391 6630 0 6800 0 |
收件人
390 371“装甲站” 1 0 6 391 6630 0 6800 0 |
但是我不知道该怎么做。
我可能会得到第二个数字,然后我不知道该如何处理。 这行中可能有相同的数字,但我只想替换第二个数字。
非常感谢。
================================================ ============================ 更新
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);
但是我可以找到类似的方法。
我看到一些文档说我们可以使用“ $”来获取组引用,并且没有做更多解释。
好吧,我从文本中读取行,并使用“ ^(\ d +)\ s + 3(7)0-21(\ s + \ d \ s +)6” 找到匹配的行。 然后我需要将39 [0-2]替换为37 [0-2]。 可以通过减去20或其他我不在乎的方式来完成。
答案 0 :(得分:0)
好吧,@ Ctorres现在给我一个主意。
当我找到匹配的行时,将其放入char数组中。
首先,我们跳过数组的第一个数字和空格。
然后将字符“ 9”更改为“ 7”。
但是我认为这真的很复杂。