当我只想根据标准将特定字符转换为十六进制时,我的 java 代码由于我无法弄清楚将字符串转换为十六进制的原因。请参阅下面的代码和输出。
for (int n = 0; n < line.length(); ++n) {
char aChar = line.charAt(n);
if (Character.isLetter(aChar) || Character.isDigit(aChar)
|| aChar == '_' || aChar == '-' || aChar == '.'
|| aChar == '*') {
encoded += +aChar;
} else if (aChar == ' ') {
encoded += +'+';
} else {
String hexValue = Integer.toHexString(aChar);
encoded += '%' + hexValue;
}
}
System.out.println("The encoded string is: " + encoded);
System.out.println("Length in chars is: " + encoded.length());
输出:
输入一行要进行 URL 编码的文本
aaddcc
读取的字符串是:aaddcc
字符长度为:6
编码后的字符串为:97971001009999
字符长度为:14
上面的代码是它的肉