从字符串中选择并更新所有特定的整数值

时间:2015-06-09 11:05:49

标签: java string

如果给出一个像100这样的整数值,那么我必须更新所有出现的文本"写1号和#34;去#"写第101"

实际文字:

  

收集参考4 - >我的主要文字4 - >它写了3写1号

     

写第2写作NO 3

     

我之前已经提过了三个参考文献。

因为我得到了100,所以我的输出就是这样。

  

收集参考4 - >我的主要文本104 - >它写了3写作No 101

     

写作否编写NO 103

     

我之前已经提过了三个参考文献。

如何使用Java以相同的方式将写1号更新为写NO 101 等?

2 个答案:

答案 0 :(得分:0)

根据我对你问题的理解,你必须根据整数值替换字符串。 你最好为此写一个函数 -

    String text = new String("Writing No 1");
    public void demo(int num) {
     text .replace(text.slice(-1), num);
    }

您可以传递任何整数值,甚至可以使用循环来表示多个字符串值。 希望我能提供帮助。

答案 1 :(得分:0)

不是100%这是你需要的,但我会试一试:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StackOverflow {

    public static void main(String[] args) {
        int inc = 100;
        String text = "Collection reference 4 -> My Main Text 4 -> It's writing 3 Writing No 1 \nWriting No 2 Writing NO 3 \nI have given three previous references.";
        String patten = "(\\D+) (\\d) (\\D+) (\\d) (\\D+) (\\d) (\\D+) (\\d) (\\D+) (\\d) (\\D+) (\\d) (\\D+)";
        Pattern pattern = Pattern.compile(patten, Pattern.DOTALL);
        Matcher matcher = pattern.matcher(text);
        matcher.find();
        System.out.println(matcher.group(1) + " " + matcher.group(2) + " " + matcher.group(3) + " "
                + inc(matcher.group(4), inc) + " " + matcher.group(5) + " " + matcher.group(6) + " " + matcher.group(7)
                + " " + inc(matcher.group(8), inc) + " " + matcher.group(9) + " " + inc(matcher.group(10), inc) + " "
                + matcher.group(11) + " " + inc(matcher.group(12), inc) + matcher.group(13));
    }

    private static int inc(String base, int inc) {
        return Integer.valueOf(base) + inc;
    }
}