「java的decode」java的decode方法

博主:adminadmin 2022-12-11 04:27:07 87

今天给各位分享java的decode的知识,其中也会对java的decode方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中 Integer的decode(),parseInt(),valueOf()有什么区别?

【转】Integer.decode()和Intger.valueof()

今天没事看看API

decode合适用来分析数字

可以分析

8进:010=分析后为 8

10进:10=分析后为 10

16进:#10|0X10|0x10=分析后是 16

而valueof 只能分析纯数字的String

像 010 这样的8进制 他会解析成 =10

//////////////////////////////////////////////////////2010.01.22补充///////////////////////////////////////////////

public static int parseInt( s,

int radix)

throws

也可以用来分析各种输入,以radix为基数. 范围是 大于等于2,小于等于36

可以直接返回int.

decode 返回Integer

想要获得Integer:

String 为十进制. 采用valueof(String)合适. 非十进制,采用decode(String)

想要获得int

String 为十进制. 采用parseInt(String )合适. 非十进制,采用parseInt(String ,int)

java中有没有类似decodeURI()的方法?

Javascript 中的 decodeURI/decodeURIComponent,Java中的java.net.URLDecoder类的decode方法提供了相近的功能,但又有一些微妙的不同:

var URLDecoder = Java.type("java.net.URLDecoder");

var URLEncoder = Java.type("java.net.URLEncoder");

var url =  "

中文";

var s1 = encodeURI(url);

var s2 = encodeURIComponent(url);

var s3 = URLEncoder.encode(url, "UTF-8");

print(s1);

print(s2);

print(s3);

print("-------------")

print(decodeURI(s1));

print(decodeURI(s2));

print(decodeURI(s3));

print("-------------")

print(decodeURIComponent(s1));

print(decodeURIComponent(s2));

print(decodeURIComponent(s3));

print("-------------")

print(URLDecoder.decode(s1, "UTF-8"));

print(URLDecoder.decode(s2, "UTF-8"));

print(URLDecoder.decode(s3, "UTF-8"));

使用JDK8的jjs.exe运行上面这段代码,结果如下:

D:\Tempj:\share\jdk8\bin\jjs.exe url.js

http%3A%2F%2F

http%3A%2F%2F

-------------

中文

http%3A%2F%2F with %2B and %3F and %26 and 中文

http%3A%2F%2F中文

-------------

中文

中文

中文

-------------

中文

中文

中文

java中编码与解码分别指什么?

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

java编码和解码        

流读取文件,具有转换编码功能的有:OutputStreamWriter和InputStreamReader,

构造器有如:

InputStreamReader(InputStream in, String charsetName)

创建使用指定字符集的 InputStreamReader。

OutputStreamWriter(OutputStream out, String charsetName)

创建使用指定字符集的 OutputStreamWriter。

处理字符串编码问题:

重新对获取的字符串进行编码:Byte[] bytes = str.getBytes(String encodeCharsetNam);

重新对bytes进行解码,创建新的字符串对象:str = new String(Byte[] bytes,String decodeCharsetName);

一般结合使用:str = new String(str.getBytes(String encodeCharsetName),String decodeCharsetName);

例如:resultName=new String(username.getBytes("ISO-8859-1"),"UTF-8");

还可以加入判断:

if(!Charset.forName("gbk").newEncoder().canEncode(str)){str = new Strin(str.getBytes("ISO-8859-1"),"UTF-8");}else{str = new String(str.getBytes("ISO-8859-1"),"gbk");}

处理请求参数传递编码问题:

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

js中编码:encodeURIComponent(strUri);encodeURI(strUri);escape(str);

js中解码:decodeURIComponent(strUri);decodeURI(strUri);unescape(str);

补充概念:

URI组件:主机、端口、路径、查询参数、片段等。

URI组件分隔符::/?#[]@,冒号用于分隔协议和主机,/用于分隔主机和 路径,?用于分隔路径和查询参数,用于分隔多个查询参数等。

URI中的不安全字符或保留字符: ! * ‘ ( ) ; : @ = + $ , / ? # [ ] 他们具有特殊作用,例如上面的分隔作用。

URI允许出现的字符:只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符,其他字符均需要经过编码之后才能出现在Url中,比如使用保留字符的原意,而不是特殊作用。

js向java/jsp的编码与解码:

js中编码:encodeURI(encodeURI(strUri));decodeURIComponent(decodeURIComponent(strUri));

java/jsp中解码: java.net.URLDecoder.decode(strUri,"UTF-8");

js中编码两次的问题:如果使用一次编码,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码值,两位两位取出后进行解码。

然后再传递给处理页面,然后由处理页面进行再次解码,这样前面就缺少了一次编码过程,所以前面需要连续两次编码。

java编程

public static void main(String[] args) {

System.out.println(encode("24ab_2t2"));

System.out.println(decode("444_aaaaa_a_b_\\UL_ttt_t_2"));

}

static String encode(String src) {

if (src == null || src.length() == 0)

return src;

StringBuilder sb = new StringBuilder();

//提前处理下划线,直接替换

src = src.replaceAll("_", "\\\\UL");

for (int i = 0; i src.length(); i++) {

char c = src.charAt(i);

if (c == '0') { // 如果是0,直接写入

sb.append(c);

} else if (c 48 c 58) {// 如果是1-9,且无后续字符

if (i == src.length() - 1) {

sb.append(c);

break;

} else {

int num = c - 48;

while(num--=0) {

sb.append(src.charAt(i+1));

}

sb.append("_");

}

} else {

sb.append(c);

sb.append("_");

}

}

//最后需要将下划线替换符号中间的下划线移除

return sb.toString().replaceAll("\\\\_U_L", "\\\\UL");

}

static String decode(String src) {

if (src == null || src.length() == 0)

return src;

StringBuilder sb = new StringBuilder();

StringTokenizer st = new StringTokenizer(src, "_");

while (st.hasMoreElements()) {

String s1 = st.nextToken();

if (s1.length() 1) {

if (s1.equals("\\UL"))

sb.append("_");

else

sb.append(s1.length() - 1);

} else {

sb.append(s1);

}

}

return sb.toString();

}

java的decode的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java的decode方法、java的decode的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-11,除非注明,否则均为首码项目网原创文章,转载请注明出处。