从字符串中提取数字并在java中修改它们

时间:2014-11-29 16:42:05

标签: java string

我想增加字符串中的数字。

例如;我想修改

  

" HTML [0]。体[0] / UL [1] / LI [10] / A [1]"

  

" HTML [1]。体[1] / UL〔2〕/ LI [11] / A [2]"

注意:我接受答案,但我想加上我的尝试; replace("8", "9").replace("7", "8").replace("6", "7").replace("5", "6").replace("4", "5").replace("3", "4").replace("2", "3").replace("1", "2").replace("0", "1") 我意识到9不能改变所以我试过

for(int i=0;i<s.length();i++){
        if (Character.isDigit(s.charAt(i)))
        {
            int a=Integer.parseInt(s, s.charAt(i))+1;
            s.charAt(i)=(char)a;
            System.out.println(s.charAt(i));

        }
        }

这也不起作用.. 第二个注意事项:一般来说,我试着编写所有代码,由于得分,我会收到警告。我不想写部分代码

1 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点。我将分享一个:

String input = "HTML[0].BODY[0]/UL[1]/LI[10]/A[1]";

Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(input);
StringBuffer sb = new StringBuffer();
while (m.find()) {
    m.appendReplacement(sb, String.valueOf(Integer.parseInt(m.group()) + 1));
}
m.appendTail(sb);

String output = sb.toString();

System.out.println(output);