Java 字符串,byte[],16进制的字符串互转
在调试的时候,如果要显示byte的值是否与预期一致,一般转换为16进制的字符串,或者使用base64转换后,然后显示出来。
/**
* 字符串转换成十六进制字符串
*/
public static String str2HexStr(String str) {
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++) {
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
}
return sb.toString();
}
/**
*
* 十六进制转换字符串
*/
public static String hexStr2Str(String hexStr) {
String str = "0123456789ABCDEF";
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / 2];
int n;
for (int i = 0; i < bytes.length; i++) {
n = str.indexOf(hexs[2 * i]) * 16;
n += str.indexOf(hexs[2 * i + 1]);
bytes[i] = (byte) (n & 0xff);
}
return new String(bytes);
}
/**
* bytes转换成十六进制字符串
*/
public static String byte2HexStr(byte[] b) {
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++) {
stmp = (Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1)
hs = hs + "0" + stmp;
else
hs = hs + stmp;
// if (n<b.length-1) hs=hs+":";
}
return hs.toUpperCase();
}
private static byte uniteBytes(String src0, String src1) {
byte b0 = Byte.decode("0x" + src0).byteValue();
b0 = (byte) (b0 << 4);
byte b1 = Byte.decode("0x" + src1).byteValue();
byte ret = (byte) (b0 | b1);
return ret;
}
/**
* bytes转换成十六进制字符串
*/
public static byte[] hexStr2Bytes(String src) {
int m = 0, n = 0;
int l = src.length() / 2;
System.out.println(l);
byte[] ret = new byte[l];
for (int i = 0; i < l; i++) {
m = i * 2 + 1;
n = m + 1;
ret[i] = uniteBytes(src.substring(i * 2, m), src.substring(m, n));
}
return ret;
}
/**
*String的字符串转换成uni
相关文档:
最近,深刻的认识到, 学习,不仅要多看书,还要时不时的总结一下:
用JSP + Servlet + JavaBean开发项目, 原以为是比较糟糕的事, 因为,JSP 页面中 总会被嵌入很多 java代码,其实我一直觉得,既然有了 struts等表示层框架,就不要用Servlet 来做控制器了, 可是最近,明白了, 仔 ......
代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。
在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用
例如:客人想请市长(真是角色)吃饭 但是请不动市长 只好找市长秘书(代理角色) 但是最后为客人做事的 还是 ......
===================================TimerTask=======================================
import java.util.TimerTask;
import java.util.Calendar;
public class MyTask extends TimerTask
{
private ......
1.去网站http://files.zentus.com/sqlitejdbc/下载sqlitejdbc.根据自已需要,下载sqlitejdbc.(sqlitejdbc有两个版本,一种是pure的一种是native的。native的速度快。它放在**-bin.tgz里。我下的就是这种sqlitejdbc-v056-bin.tgz)
2. 下载后解压sqlitejdbc-v056-bin.tg ,有以下几个文件: libsqlitejdbc.so,sqlitejdbc.d ......
package com.tienway.util;
import java.util.ArrayList;
public class StringUtil
{
public static String ContextType1ToType2(String Type1Context)
{
if (Type1Context== null || Type1Context.length() == 0)
{
return "";
}
char[] c = Type1Con ......