2016-05-24 5 views
1

Я должен преобразовать следующий Delphi код Java:Преобразование из Int в Hex в Delphi и Java

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

Функция IntToHex преобразует DecimalValue число в шестнадцатеричном формате строки, по крайней мере, MinimumWidth символов.

Я реализовал это в Java, как:

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

Нужно ли мне в Java, чтобы указать, что результирующая строка должна содержать, по меньшей мере, заданное количество цифр, как в Delphi с параметром MinimumWidth? Я уже с моей функцией Java реализовал полную функциональность из функции Delphi IntToHeX?

+0

No. Если вы хотите, чтобы быть определенной длиной, вы должны подушечкой его. – Shark

+0

DecimalValue не десятичный. Это просто номер. –

+0

@DavidHeffernan Я также отменил его как параметр Integer для функции. Я взял эту статью из документации Delphi. – Samashki95

ответ

4

Если я правильно понимаю ваш вопрос, я думаю, что ваше решение должно быть использование string.Format в Java Если вы хотите шестнадцатеричных чисел в строке вы можете использовать

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

Вы можете указать длину Предварение его к x, как

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

Где, конечно, mynumber - это int или любой другой допустимый номер. Если вы хотите, чтобы панель с нулями, вы должны использовать

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

Вы можете использовать капитал X, чтобы заглавные буквы в результирующей строке

Чтобы получить более подробную информацию о варианте формата вы посмотрите на баночной следующий URL: http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax

Надеется, что это может помочь

+0

Это именно то, что мне нужно. Функция вызывается из одного места в коде с параметрами intToHex (intValue, 32), а в Java мне также нужен результат String из моей функции, которая имеет 32 позиции. – Samashki95