需求:某一字符串,其内容格式都不确定,需要截取其中的服务工单编号
eg:"电商返款:平台单号:276565050632 服务工单:ZJ-2308281523,规格型号:JJZT-F30BX01R/12T/黑色/右出风,客户名称:京东自营,返款编号:RFDS20230911000666"
需返回:ZJ-2308281523
解决方法一:多次截取字符串,第一次截取“服务工单:”开头的,第二次截取“,”结尾的
String str = "电商返款:平台单号:276565050632 服务工单:ZJ-2308281523,规格型号:JJZT-F30BX01R/12T/黑色/右出风,客户名称:京东自营,返款编号:RFDS20230911000666 ";
if(str.contains("服务工单:")){
int index = str.indexOf("服务工单:");
String temp = str.substring(index+5);
int index2 = temp.indexOf(",");
String result = temp.substring(0,index2);
System.out.println(result);
} else {
System.out.println("抛出异常:参数错误");
}
解决方法二:正则表达式匹配
String str = "电商返款:平台单号:276565050632 服务工单:ZJ-2308281523,规格型号:JJZT-F30BX01R/12T/黑色/右出风,客户名称:京东自营,返款编号:RFDS20230911000666";
// 使用正则表达式进行匹配
Pattern pattern = Pattern.compile("服务工单:([\\w-]+)");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
String serviceOrder = matcher.group(1);
System.out.println("截取到的服务工单号是:" + serviceOrder);
} else {
System.out.println("未找到匹配的服务工单号");
}