正则表达式分隔十六进制代码

时间:2014-10-01 09:30:50

标签: java regex

我有String喜欢:

String s = "IPhone 5s $400"

我想得到的是:

String s1 = "IPhone 5s";

String s2 = "$400";

我尝试的是获取String的最后一个字,并检查它是否以"&#"开头,如果是,请将其从String中取出并将其设为UTF-8。

但价格有可能不在String的末尾。

此外,所有货币符号都以"$#"开头吗?

2 个答案:

答案 0 :(得分:0)

&#之前拆分:

String s = "IPhone 5s $400"
String[] splitArray = subjectString.split("(?=&#)");

之后,在该数组中的字符串上调用StringEscapeUtils.unescapeHtml4以正确解码符号。如果只有一个这样的符号(如你的情况):

splitArray[1] = StringEscapeUtils.unescapeHtml4(splitArray[1]);

答案 1 :(得分:0)

你可以使用StringEscapeUtils或标准的libs和regex,然后拆分字符串。

import java.io.*;

class Test{
   public static void main(String args[]){
      String p = new String("IPhone 5s $400");
      String r = p.replaceAll("($)","\\|\\$");

      String[] s = r.split("\\|"); 
      System.out.println(s[0]);    // IPhone 5s
      System.out.println(s[1]);    // $400
   }
}

示例:

<强> http://ideone.com/epttX4