假如“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());
使用正则直接获取数字不香吗