「java的decode」java的decode方法
今天给各位分享java的decode的知识,其中也会对java的decode方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中 Integer的decode(),parseInt(),valueOf()有什么区别?
- 2、java中有没有类似decodeURI()的方法?
- 3、java中编码与解码分别指什么?
- 4、java编程
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的信息别忘了在本站进行查找喔。
发布于:2022-12-11,除非注明,否则均为
原创文章,转载请注明出处。