项 目,行次,本月数,本年累计,上年同期
三项费用合计,1,KB2010EYYFA01C2,KB2010EYYFB01D2,KB2010EYYFC01E2
销售费用,2,KB2010EYYFA02C3,KB2010EYYFB02D3,KB2010EYYFC02E3
办公费,3,KB2010EKBYY100201AC4,KB2010EKBYY100201BD4,KB2010EKBYY100201CE4
上面是一个Excel表中的数据片段,现在如何截取上面的字符串,让结果形成:项 目,行次,本月数,本年累计,上年同期
三项费用合计,1,YYFA01,YYFB01,YYFC01
销售费用,2,YYFA02,YYFB02,YYFC02
办公费,3,KBYY100201A,KBYY100201B,KBYY100201C即将单元格中的参数的前缀KB2010E,以及后缀C*, D*, E*都给截取掉,请问用Java如何实现?
三项费用合计,1,KB2010EYYFA01C2,KB2010EYYFB01D2,KB2010EYYFC01E2
销售费用,2,KB2010EYYFA02C3,KB2010EYYFB02D3,KB2010EYYFC02E3
办公费,3,KB2010EKBYY100201AC4,KB2010EKBYY100201BD4,KB2010EKBYY100201CE4
上面是一个Excel表中的数据片段,现在如何截取上面的字符串,让结果形成:项 目,行次,本月数,本年累计,上年同期
三项费用合计,1,YYFA01,YYFB01,YYFC01
销售费用,2,YYFA02,YYFB02,YYFC02
办公费,3,KBYY100201A,KBYY100201B,KBYY100201C即将单元格中的参数的前缀KB2010E,以及后缀C*, D*, E*都给截取掉,请问用Java如何实现?
s = s.substring(0,s.length-2);
我来帮你写个截取通用方法 其他通用
KB2010EYYFA01C2 将单元格中的参数的前缀KB2010E,以及后缀C*, D*, E*都给截取掉
参数就是你传入的值 返回的就是你要的
public static String ToSub(String str) {
String[] splt = str.split("KB2010E");
String nextStr = splt[1];
StringBuffer bf = new StringBuffer(nextStr);
bf.reverse();
String result = bf.substring(2);
bf = new StringBuffer(result);
return bf.reverse().toString();}
str = str.replaceAll("^KB2010E", "").replaceAll("E.$", "");
这个要出问题吧,万一中间内容有CDE的你不是一起删掉了。
KB2010E******D2, KB2010E******E2.................以及后面的很多这样的参数,我要留下的是“******”,把前段的KB2010E跟后端的C2, D2, E2.....都去掉最后值保留 *******就可以了,好像各位的答案都有点问题哦~!
sb.append("项 目,行次,本月数,本年累计,上年同期\n");
sb.append("三项费用合计,1,KB2010EYYFA01C2,KB2010EYYFB01D2,KB2010EYYFC01E2\n");
sb.append("销售费用,2,KB2010EYYFA02C3,KB2010EYYFB02D3,KB2010EYYFC02E3\n");
sb.append("办公费,3,KB2010EKBYY100201AC4,KB2010EKBYY100201BD4,KB2010EKBYY100201CE4\n");
System.out.println(sb.toString().replace("KB2010E", "").replaceAll("[A-Z][0-9],", ",").replaceAll("[A-Z][0-9]\n", "\n"));
sb.append("项 目,行次,本月数,本年累计,上年同期\n");
sb.append("三项费用合计,1,KB2010EYYFA01C2,KB2010EYYFB01D2,KB2010EYYFC01E2\n");
sb.append("销售费用,2,KB2010EYYFA02C3,KB2010EYYFB02D3,KB2010EYYFC02E3\n");
sb.append("办公费,3,KB2010EKBYY100201AC4,KB2010EKBYY100201BD4,KB2010EKBYY100201CE4\n");
System.out.println(sb.toString().replace("KB2010E", "").replaceAll("[A-Z][0-9],", ",").replaceAll("[A-Z][0-9]\n", "\n"));
System.out.println("三项费用合计,1,KB2010EYYFA01C2,KB2010EYYFB01D2,KB2010EYYFC01E2".replaceAll("KB2010E", "").replaceAll("[CDE][0-9](,|$)", ","));运行结果
三项费用合计,1,YYFA01,YYFB01,YYFC01,