易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中有关byte和String的转换笔记

关键字: byte String
问题1:java中没有实现这种“byte a = 0xB2 --> String b = “B2””转换的简单实现需要自己实现。
答:自己编写的转换函数,思路将byte的高低4位分开,分别转换为对应的字符然后合成返回的字符串。
java 代码
public static String byteToString(byte b) {   
byte high, low;   
byte maskHigh = (byte)0xf0;   
byte maskLow = 0x0f;   
  
high = (byte)((b & maskHigh) >> 4);   
low = (byte)(b & maskLow);   
  
StringBuffer buf = new StringBuffer();   
buf.append(findHex(high));   
buf.append(findHex(low));   
  
return buf.toString();   
}   
  
private static char findHex(byte b) {   
int t = new Byte(b).intValue();   
t = t < 0 ? t + 16 : t;   
  
if ((0 <= t) &&(t <= 9)) {   
return (char)(t + '0');   
}   
  
return (char)(t-10+'A');   
}   
  
未解决的疑问在java中不存在类似C中的无符号量,所以如果一个字节超过0x80其对应的整型值即为负值,但在高位右移4位后还是负值,且与对应的正值相差16,比如0xB2经过右移后的期望值是0x0B(11)但实际值是-5与预期的值相差16(这个16通过多次试验得出),对此现象为找到合理的解释。
问题2:“String a=”B2” --> byte b=0xB2”字符的byte转换为byte数据类型
答:思路通过Integer作为转换的中间桥梁
java 代码
public static int stringToByte(String in, byte[] b) throws Exception {   
if (b.length < in.length() / 2) {   
throw new Exception("byte array too small");   
}   
  
int j=0;   
StringBuffer buf = new StringBuffer(2);   
for (int i=0; i
buf.insert(0, in.charAt(i));   
buf.insert(1, in.charAt(i+1));   
int t = Integer.parseInt(buf.toString(),16);


相关文档:

java读取Excel文件

http://www.andykhan.com/jexcelapi/可以下载到第三方jxl.jar包,并且excel要保存为2003或以前的版本
package com.excel;
// 1 文件对象 2工作簿对象 3 单元格对象。
//相应的在JXL中就有Workbook,Sheet ,Cell 。
import java.io.*;
import jxl.*;
public class GetExcelValues3 {
public static void main(Strin ......

java环境变量配置

(1)Ctrl+M --切换窗口的大小
(2)Ctrl+Q --跳到最后一次的编辑处
(3)F2        --当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Tooltip Description。
          F3   ......

关于java异常处理程序的陋习

关于六种Java异常处理程序的陋习
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
1 OutputStreamWriter out = ...
2 java.sql.Connection conn = ...
3 try { // ⑸
4  Statement stat = conn.createStatement();
5  ResultS ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号