ST,GS,+ 93.8,kg
怎么取93.8?前面的ST,GS,+和后面的,kg是固定的
@1 0.0 g @82.43440 g @9 0 pcs
怎么取0.0和2.43440和0? 前面的@1和@8/@9这些也是固定的。直接解析也可以,不过用正则表达式是否更好解析呢?
怎么取93.8?前面的ST,GS,+和后面的,kg是固定的
@1 0.0 g @82.43440 g @9 0 pcs
怎么取0.0和2.43440和0? 前面的@1和@8/@9这些也是固定的。直接解析也可以,不过用正则表达式是否更好解析呢?
String str = "ST,GS,+ 93.85,kg";
Pattern p = Pattern.compile("ST,GS,\\+\\s+(\\d+(?:\\.\\d+)?),kg");
Matcher m = p.matcher(str);
if (m.find())
System.out.println(m.group(1));
str = "@1 0.0 g @82.43440 g @9 0 pcs";
p = Pattern
.compile("@1\\s+(\\d+(?:\\.\\d+))\\s+g\\s+@(\\d+(?:\\.\\d+)+)\\sg\\s@\\d\\s+(\\d+)");
m = p.matcher(str);
if (m.find()) {
for (int i = 1; i <= m.groupCount(); i++) {
System.out.println(m.group(i));
}
} }输出:
93.85
0.0
82.413440
0
怎么取93.8?前面的ST,GS,+和后面的,kg是固定的
——数据如果是逐行读取的,考虑直接:
——String num = line.replaceAll("\\D+([\\d\\.]+)\\D+", "$1");@1 0.0 g @82.43440 g @9 0 pcs
怎么取0.0和2.43440和0? 前面的@1和@8/@9这些也是固定的。
——数据如果是逐行读取的,考虑直接:
——String[] nums = line.replaceAll("\\s|[[a-zA-Z]", "").split("@\\d");