gpt4 book ai didi

java - 将字符串中的所有字符转换为不同的转义格式(Java)

转载 作者:行者123 更新时间:2023-12-01 15:48:06 24 4
gpt4 key购买 nike

我希望将字符串中的字符转换为不同的转义格式,如下所示,其中字母“a”是要转换的字符串:

hex-url: %61
hex-html: a
decimal-html: &#97

我搜索过各种内置方法,但它们只是取出 url 编码指定的字符(如“<”)并转义它们。我想转义整个字符串。有没有办法在java中将字符串转换为上述格式(最好使用内置库)?

最佳答案

public class StringEncoders
{
static public void main(String[] args)
{
System.out.println("hex-url: " + hexUrlEncode("a"));
System.out.println("hex-html: " + hexHtmlEncode("a"));
System.out.println("decimal-html: " + decimalHtmlEncode("a"));
}
static public String hexUrlEncode(String str) {
return encode(str, hexUrlEncoder);
}
static public String hexHtmlEncode(String str) {
return encode(str, hexHtmlEncoder);
}
static public String decimalHtmlEncode(String str) {
return encode(str, decimalHtmlEncoder);
}
static private String encode(String str, CharEncoder encoder)
{
StringBuilder buff = new StringBuilder();
for ( int i = 0; i < str.length(); i++)
encoder.encode(str.charAt(i), buff);
return ""+buff;
}
private static class CharEncoder
{
String prefix, suffix;
int radix;
public CharEncoder(String prefix, String suffix, int radix) {
this.prefix = prefix;
this.suffix = suffix;
this.radix = radix;
}
void encode(char c, StringBuilder buff) {
buff.append(prefix).append(Integer.toString(c, radix)).append(suffix);
}
}
static final CharEncoder hexUrlEncoder = new CharEncoder("%","",16);
static final CharEncoder hexHtmlEncoder = new CharEncoder("&#x",";",16);
static final CharEncoder decimalHtmlEncoder = new CharEncoder("&#",";",10);
}

关于java - 将字符串中的所有字符转换为不同的转义格式(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com