我有一个像
这样的字符串<YYYY>-<MM>-<DD>_ABC_<ID>_<BKN>_<HH><MM><SS>
我想以这样的方式拆分字符串,结果应如下所示:
<YYYY>
-
<MM>
-
<DD>
_
<ABC>
_
<ID>
_
<BKN>
_
<HH>
<MM>
<SS>
我该怎么做?
答案 0 :(得分:0)
试试这个
String s = "<YYYY>-<MM>-<DD>_ABC_<ID>_<BKN>_<HH><MM><SS>";
StringTokenizer st = new StringTokenizer(s, "_|\\-", true);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
答案 1 :(得分:0)
你可以通过这种方式实现它,可能看起来很脏,但会达到你的目的:
String teststring="<YYYY>-<MM>-<DD>_ABC_<ID>_<BKN>_<HH><MM><SS>";
Matcher m = Pattern.compile("<YYYY>(.*)<MM>(.*)<DD>(.*)ABC(.*)<ID>(.*)<BKN>(.*)<HH>(.*)<MM>(.*)<SS>(.*)").matcher(teststring);
while(m.find()) {
System.out.println("<YYYY>\n" + m.group(1));
System.out.println("<MM>\n" + m.group(2));
System.out.println("<DD>\n" + m.group(3));
System.out.println("<ABC>\n" + m.group(4));
System.out.println("<ID>\n" + m.group(5));
System.out.println("<BKN>\n" + m.group(6));
System.out.println("<HH>\n" + m.group(7));
System.out.println("<MM>\n" + m.group(8));
System.out.println("<SS>\n" + m.group(9));
}
答案 2 :(得分:0)
public static void main(String[] args) {
String str = "1987-07-31_ABC_<ID>_<BKN>_<HH><MM><SS>";
List < String > result = new ArrayList < String > ();
String token = "";
for (Character c: str.toCharArray()) {
if (c == '-' || c == '_') {
result.add(token);
token = "";
result.add(c.toString());
} else {
token += c;
}
}
if (token != "") {
result.add(token);
}
System.out.println(result);
}
答案 3 :(得分:0)
String s = "<YYYY>-<MM>-<DD>_ABC_<ID>_<BKN>_<HH><MM><SS>";
String a = s.replaceAll("[^-|_]", "");
String[] b = s.replaceAll("[-_<>]", " ").trim().split("\\s+");
for(int i = 0; i < b.length; ++i) {
System.out.println("<" + b[i] + ">");
if(i < a.length()) System.out.println(a.charAt(i));
}
或只是
String s = "<YYYY>-<MM>-<DD>_ABC_<ID>_<BKN>_<HH><MM><SS>";
String[] c = s.replaceAll("-", "\n-\n").replaceAll("_", "\n_\n").replaceAll("><", ">\n<").split("\n");
for(int i = 0; i < c.length; ++i) {
System.out.println(c[i].indexOf("<") < 0 && c[i].length() > 1 ? "<" + c[i] + ">" : c[i]);
}
...
<YYYY>
-
<MM>
-
<DD>
_
<ABC>
_
<ID>
_
<BKN>
_
<HH>
<MM>
<SS>