易截截图软件、单文件、免安装、纯绿色、仅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中的对象赋值问题

在java中  可以将某个对象赋值给另一个对象  只要该两个对象是属于同一个类即可  此时  这两个对象的所有成员将指向同一块内存
eg:
      public class class1
         {
        &n ......

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.会为它以及它的所有父类的实例变量分配内存空间,如果分配空间成功,则所有实例变量都会初始化为默认值0、false、null
2.会递归调用父构造函数,但是暂不执行构造函数的语句;
3.对该父构造函数对应的类的实例变量赋值
4.执行父构造函数的其他语句
5.对于子类,执行2-4步骤 ......

《Effective Java》: 考虑用静态工厂方法代替构造函数

考虑用静态工厂方法代替构造函数
类可以为它的客户提供一些静态工厂方法,来替代构造函数,或者同时也提供一些构造函数。
 静态工厂方法的一个好处是,与构造函数相比,静态工厂方法具有名字,它可以使得代码更容易阅读。如果一个类看起来需要多个构造函数,并且它们的原型特征相同,那么你应该考虑用静态工厂方法来 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号