仅对String中的特定字符进行编码

时间:2015-06-05 10:17:55

标签: java string character-encoding

我必须将字符串中的一些特殊字符编码为数值。 说,

String name = "test $#";

我想在上面的字符串中只编码字符$#。我尝试使用下面的代码,但它没有成功。

String encode = URLEncoder.encode(StringEscapeUtils.escapeJava(name), "UTF-8");

编码值类似于,对于空格,编码值为&#160

2 个答案:

答案 0 :(得分:0)

如何将该字符串(通过字符串#flit方法 - 空格作为正则表达式)拆分,从Array返回,您可以使用最后一项,然后您将获得所需的符号:)

String name = "test $#";
String nameSplittedArr = name.split(" ");
String yourChars = nameSplittedArr[nameSplittedArr.length-1]; //indexes from zero

这应该有效:)

答案 1 :(得分:0)

根据评论,我认为您正在使用自定义编码功能。类似的东西:

public static String EncodeString(String text) {
    StringBuffer sb = new StringBuffer();

    for (char c : text.toCharArray()) {
        if (Character.isLetterOrDigit(c)) {
            sb.append(c);
        } else {
            sb.append("&#" + (int)c + ";");
        }
    }

    return sb.toString();
}

这方面的一个例子是here