Maison >Java >javaDidacticiel >Conversion hexadécimale et chaîne JAVA
toHexString
public static String toHexString(int i) renvoie la représentation sous forme de chaîne d'un paramètre entier sous la forme d'un entier hexadécimal non signé.
Si l'argument est négatif, la valeur entière non signée est l'argument plus 232 sinon elle est égale à l'argument. Convertit la valeur en chaîne numérique ASCII hexadécimale (base 16) sans 0 en tête. Si la valeur de taille d'un nombre non signé est zéro, elle est représentée par un caractère zéro « 0 » (« u0030 ») ; sinon, le premier caractère de la représentation de la taille d'un nombre non signé ne sera pas un caractère zéro. Utilisez les caractères suivants comme nombres hexadécimaux :
0123456789abcdef
La plage de ces caractères va de « u0030 » à « u0039 » et de « u0061 » à « u0066 ». Si vous voulez des lettres majuscules, vous pouvez appeler la méthode String.toUpperCase() sur le résultat :
Integer.toHexString(n).toUpperCase()
Paramètres :
i - l'entier à convertir en chaîne.
Renvoie :
La représentation sous forme de chaîne de la valeur entière non signée en argument hexadécimal (base 16).
//Convertir la chaîne en codage hexadécimal
public static String toHexString(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;
}
// Convertir le codage hexadécimal en chaîne
public static String toStringHex(String s)
{
byte[] baKeyword = new byte[s.length( )/2];
for(int i = 0; i < baKeyword.length; i )
{
essayez
{
baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2 2),16));
}
catch(Exception e)
{
e. }
}
essayez
{
s = new String(baKeyword, "utf-8");//UTF-16le:Not
}
catch (Exception e1)
{
e1.printStackTrace();
}
return s;
}
// Convertir le codage hexadécimal en chaîne
public static String toStringHex(String s)
{
byte[] baKeyword = new byte[s.length()/2];
for(int i = 0; i < baKeyword.length; i )
{
essayez
{
baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2 2),16));
}
catch(Exception e)
{
e.printStackTrace();
}
}
essayez
{
s = new String(baKeyword, "utf-8");//UTF- 16le:Pas
}
catch (Exception e1)
{
e1.printStackTrace();
}
return s
}
public static void main( String[] args) {
System.out.println(encode("中文"));
System.out.println(decode(encode("中文") ))); >/*
* Jeu de caractères numériques hexadécimaux
*/
private static String hexString="0123456789ABCDEF"
/*
* will La chaîne est codée en un nombre hexadécimal, applicable à tous caractères (y compris le chinois)
*/
public static String encode(String str)
{
//Obtenir le tableau d'octets selon l'encodage par défaut
byte[] bytes=str.getBytes ();
StringBuilder sb=new StringBuilder(bytes.length*2);
//Décompose chaque octet du tableau d'octets en un entier système hexadécimal à 2 chiffres
for(int i=0;i< bytes.length;i )
{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
sb.append(hexString.charAt((bytes[ i]&0x0f)>>0));
}
return sb.toString();
}
/*
* Décoder les nombres hexadécimaux en chaînes, applicables à tous les caractères ( y compris le chinois)
*/
public static String decode(String bytes)
{
ByteArrayOutputStream baos=new ByteArrayOutputStream( bytes.length()/2
//Assemble each 2- chiffre un entier hexadécimal en un octet
for(int i=0;i
return new String(baos.toByteArray( ));
}
Deuxième méthode :
Imprime le tableau d'octets spécifié à la console sous forme hexadécimale
Plus d'hexadécimaux et de caractères JAVA Pour les articles liés à la conversion de chaînes, veuillez faire attention au site Web PHP chinois !