2016-05-24 7 views
1

Ich habe folgenden Delphi-Code zu Java konvertieren:von Int Konvertieren in Delphi und Java auf Hex

function IntToHex(MyValue: Integer; MinimumWidth: Integer): Ansistring; 
begin 
    AnsiStrings.FmtStr(Result, '%.*x', [MyValue, MinimumWidth]); 
end; 

Die IntToHex Funktion eine DecimalValue ganze Zahl in ein Hexadezimalformat Zeichenfolge von mindestens Minimum wandelt Zeichen breit.

ich umgesetzt habe es in Java als:

public static String intToHex(int value) 
    { 
     return Integer.toHexString(value); 
    } 

Muss ich in Java müssen, um anzuzeigen, dass die resultierende Zeichenfolge mindestens die angegebene Anzahl von Ziffern wie in Delphi mit dem Parameter Minimum enthalten? Habe ich schon mit meiner Java Funktion die volle Funktionalität aus der Delphi IntToHeX-Funktion implementiert?

+0

Nr helfen Wenn Sie es bestimmter Länge sein wollen, müssen Sie Pad es. – Shark

+0

DecimalValue ist nicht dezimal. Es ist nur eine Nummer. –

+0

@DavidHeffernan Ich habe es auch als Integer-Parameter für die Funktion verstanden. Ich habe dieses Beispiel aus der Delphi-Dokumentation genommen. – Samashki95

Antwort

4

Wenn ich Ihre Frage richtig verstanden habe, denke ich, Ihre Lösung sollte String.format in Java zu verwenden, wenn Sie in der Zeichenfolge Hexzahlen möchten, können Sie

String myFormattedString = String.format("%x", mynumber); 

Sie können die Länge angeben es vorangestellt an den x, wie

String myFormattedString = String.format("%4x", mynumber); 

Wo natürlich mynummer ist eine int oder jede andere Art von gültigen Nummer. Wenn Sie mit Nullen aufzufüllen möchten, sollten Sie

String myFormattedString = String.format("%04x", mynumber); 

verwenden Sie Kapital X verwenden können Großbuchstaben in der resultierenden String haben

Um weitere Informationen über das Format Option haben Sie einen Blick auf das nehmen folgende URL: http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax

Hope this kann

+0

Genau das habe ich gebraucht. Die Funktion wird von einem Platz im Code mit den Parametern intToHex (intValue, 32) aufgerufen und in Java brauchte ich auch einen result String von meiner Funktion mit 32 Positionen. – Samashki95