请问java中有没有直接读入16进制的方法;
比如c中就有一个很简单的库函数scanf("%x",&a);
像a这个十六进制数,java中也有类似的方法吗,还是必须按照字符串读入,然后自己处理成int?
有知情的高手透露下,谢谢

解决方案 »

  1.   

    我所知道的还是要先拿到字符串,不过有现成的函数可以parse 16进制:
    int value = Integer.parseInt("FF",16);
      

  2.   

    网上挺多的
    下面这个觉得不错
    public static void main(String[] args) { Scanner s = new Scanner(System.in);
    String i;
    while ((i = s.next()) != "0"){
    System.out.println(decode(i));  
    }
    }

    public   static   String   decode(String   bytes) 

    ByteArrayOutputStream   baos=new   ByteArrayOutputStream(bytes.length()/2); 
    String   hexString= "0123456789ABCDEF"; 
    for(int   i=0;i <bytes.length();i+=2) 
    baos.write((hexString.indexOf(bytes.charAt(i)) <<4   |hexString.indexOf(bytes.charAt(i+1)))); 
    return   new   String(baos.toByteArray()); 
    }
      

  3.   

    我所知道的好像也没有,一般是先输入得到字符串,然后再转换成16进制,Integer里面有对种进制数的转换