欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS NSData 与 Java十六进制的知识学习讲解

程序员文章站 2022-04-12 20:13:26
近期公司项目用到了,ios使用本身自带的nsdata将字符串转化为一串 数字+英文的(着实看不懂) 经过大量百度,谷歌。以及求教ios查看nsdata底层实现,发现就是讲string字符串转成了十六...

近期公司项目用到了,ios使用本身自带的nsdata将字符串转化为一串 数字+英文的(着实看不懂)

经过大量百度,谷歌。以及求教ios查看nsdata底层实现,发现就是讲string字符串转成了十六进制。

例如:string str="123abc42l4jk234"; 转化后:31323361626334326c346a6b323334

附上字符串转16进制代码:

	/**
	 * 字符串转化成为16进制字符串
	 * @param s
	 * @return
	 */
	public static string strto16(string s) {
	 string str = "";
	 for (int i = 0; i < s.length(); i++) {
	  int ch = (int) s.charat(i);
	  string s4 = integer.tohexstring(ch);
	  str = str + s4;
	 }
	 return str;
	}
	
	/**
	 * 16进制转换成为string类型字符串
	 * @param s
	 * @return
	 */
	public static string hexstringtostring(string s) {
	 if (s == null || s.equals("")) {
	  return null;
	 }
	 s = s.replace(" ", "");
	 byte[] bakeyword = new byte[s.length() / 2];
	 for (int i = 0; i < bakeyword.length; i++) {
	  try {
	bakeyword[i] = (byte) (0xff & integer.parseint(s.substring(i * 2, i * 2 + 2), 16));
	  } catch (exception e) {
	e.printstacktrace();
	  }
	 }
	 try {
	  s = new string(bakeyword, "utf-8");
	  new string();
	 } catch (exception e1) {
	  e1.printstacktrace();
	 }
	 return s;
	}