我想在格式低于
的edi文件中获取值\nRJCK3:0*20180105*U*127.35
\nRJCK3:0*20180105*B*127.35
我想在第一种情况下使用值 U ,它介于第二和第二种情况之间。 RJC*K3
之后的第3颗星,并希望第二根字符串中的B
准确地说,想要从字符串中获取单个字符,其中该字符将位于第2个和第2个字符之间。 *
(静态值)的第三颗星(RJC*K3
)。
答案 0 :(得分:1)
您可以使用经典Pattern matching
方式:
String str1 = "\\nRJC*K3:0*20180105*U*127.35";
Matcher m = Pattern.compile("RJC\\*K3.*\\*(\\w)\\*.*").matcher(str1);
String res1 = m.find() ? m.group(1) : "";
System.out.println(res1); // U
但是如果在你想要的字母之前总是有相同数量的*
,那么你很容易分开并占据第三部分:
String str2 = "\\nRJC*K3:0*20180105*G*127.35";
String res2 = str2.split("\\*")[3];
System.out.println(res2); // G
答案 1 :(得分:0)
无需使用edi文件,您可以使用可用的库。
请查看https://github.com/imsweb/x12-parser/
RJCloop.getSegment("RJC").getElementValue("RJC02")
可以为您提供所需的价值。