Heim  >  Artikel  >  Java  >  JAVA-Hexadezimal- und String-Konvertierung

JAVA-Hexadezimal- und String-Konvertierung

高洛峰
高洛峰Original
2017-01-24 15:10:572121Durchsuche

toHexString
public static String toHexString(int i) gibt die String-Darstellung eines ganzzahligen Parameters in Form einer vorzeichenlosen hexadezimalen Ganzzahl zurück.
Wenn das Argument negativ ist, ist der vorzeichenlose Ganzzahlwert das Argument plus 232; andernfalls ist es gleich dem Argument. Konvertiert den Wert in eine hexadezimale (Basis 16) ASCII-Zahlenzeichenfolge ohne führende Nullen. Wenn der vorzeichenlose Größenwert Null ist, wird er durch ein Nullzeichen „0“ („u0030“) dargestellt. Andernfalls ist das erste Zeichen in der vorzeichenlosen Größendarstellung kein Nullzeichen. Verwenden Sie die folgenden Zeichen als Hexadezimalzahlen:
0123456789abcdef
Der Bereich dieser Zeichen reicht von „u0030“ bis „u0039“ und von „u0061“ bis „u0066“. Wenn Sie Großbuchstaben wünschen, können Sie die Methode String.toUpperCase() für das Ergebnis aufrufen:
Integer.toHexString(n).toUpperCase()
Parameter:
i – ​​die Ganzzahl, die in a konvertiert werden soll Zeichenfolge.
Rückgabe:
Die Zeichenfolgendarstellung des vorzeichenlosen Ganzzahlwerts, ausgedrückt als hexadezimales Argument (Basis 16).
//Konvertieren Sie den String in eine hexadezimale Codierung
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;
}
// Hexadezimalkodierung in String konvertieren
public static String toStringHex(String s)
{
byte[] baKeyword = new byte[s.length ()/2];
for(int i = 0; i < baKeyword.length; i++)
{
try
{
baKeyword[i ] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16));
}
catch(Exception e)
{
e.printStackTrace(); 🎜>}
}
try
{
s = new String(baKeyword, "utf-8");//UTF-16le:Not
}
catch (Exception e1 )
{
e1.printStackTrace();
}
return s;
}
/ Hexadezimalkodierung in String konvertieren
public static String toStringHex(String s)
{
byte[] baKeyword = new byte[s.length()/2];
for(int i = 0; i < baKeyword.length ; i++)
{
try
{
baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16) ); Ausnahme e)
{
e.printStackTrace();
}
}
try
{
s = new String (baKeyword, "utf-8");/ /UTF-16le:Nicht
}
catch (Ausnahme e1)
{
e1.printStackTrace();
}
return s;
}
public static void main(String[] args) {
System.out.println(encode("中文"));
}
/*
* Hexadezimaler numerischer Zeichensatz
*/
private static String hexString="0123456789ABCDEF";
/*
* Kodieren Sie den String in Hexadezimalzahlen, anwendbar auf alle Zeichen (einschließlich Chinesisch)
*/
public static String encode(String str)
{
//Erhalten Sie das Zeichen gemäß der Standardcodierung Abschnittsarray
byte[] bytes=str.getBytes ();
StringBuilder sb=new StringBuilder(bytes.length*2);
//Zerlegen Sie jedes Byte im Byte-Array in eine zweistellige hexadezimale Ganzzahl
for(int i=0;i{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4 )); &0x0f)>>0));
}
return sb.toString();
}
/*
* Hexadezimalzahlen in Strings dekodieren, anwendbar auf alle Zeichen (einschließlich Chinesisch). )
*/
public static String decode(String bytes)
{
ByteArrayOutputStream baos= new ByteArrayOutputStream(bytes.length()/2); Ganzzahl in ein Byte
for(int i=0;ibaos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));
return new String( baos.toByteArray());
Zweite Methode:
Drucken Sie das angegebene Byte-Array aus die Konsole in hexadezimaler Form


Mehr JAVA 16 Für Artikel zur Hexadezimal- und String-Konvertierung beachten Sie bitte die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn