Java怎么进行循环截取

假如“abc123abc456abc789”
我想要输出结果是123456789,
我想的是逢abc就截取,然后拼接,但是尝试了几种实现方式都报错。。

首先你想要的是逢abc就截取,那就用split把字符串分割成数组;然后数组转字符串就好了呀;代码我帮你实现了,如果有帮助,请采纳;谢谢

public static void main(String[] args) {
        String str = "abc123abc456abc789";
        String[] split = str.split("abc");
        StringBuffer sb = new StringBuffer();
        for (String string : split) {
            sb.append(string);
        }
        System.err.println(sb.toString());
    }

如果问题升级,想要截图字符串内所有数字;直接正则则更香

public static void main(String[] args) {
        String str = "abcaa123abcaa456abcaa789";
        String result = Pattern.compile("[^0-9]").matcher(str).replaceAll("").trim();
        System.err.println(result);
    }

1种楼上那种截取,前提是你所有的字母都是abc。如果你只是为了要里面的数字,可以s.toCharArray,判断每个char的大小是不是在0-9之间,然后放入stringBuilder之后转成字符串。可以把s改为入参

    String s = "dabc123eabc456dabc789";
        char[] chars = s.toCharArray();
        StringBuilder builder = new StringBuilder();
        for (char c : chars) {
            if (c>='0' && c<='9'){
                builder.append(c);
            }
        }
        System.out.println(builder.toString());

使用正则直接获取数字不香吗