String.format () для нескольких атрибутов в одной строке - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь сжать свой код, и я получаю четыре String.format () в одной строке.Есть ли способ сделать это более простым и понятным способом?

Мой блок кода:

String startX = String.format("%03d", mission.getStartX());
String startY = String.format("%03d", mission.getStartY());
String endX = String.format("%03d", mission.getEndX());
String endY = String.format("%03d", mission.getEndY());

Спасибо:)

1 Ответ

0 голосов
/ 21 января 2019

Единственный способ, как я могу немного привести в порядок, иметь СУХОЙ (не повторяющийся) код, - это определить метод, скажем, format03d () следующим образом:

private String format03d(int x) {
    return String.format("%03d", x);
}

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

Затем вы можете вызвать метод для ваших переменных:

String startX = format03d(mission.getStartX());
String startY = format03d(mission.getStartY());
String endX = format03d(mission.getEndX());
String endY = format03d(mission.getEndY());

Я предполагаю, что ваши переменные являются целыми числами.

Если вы хотите пойти по пути коллекций, вы можете использовать потоки.

Stream.of(
      mission.getStartX(),
      mission.getStartY(),
      mission.getEndX(),
      mission.getEndY())
   .map(x -> String.format("%03d", x))
   .collect(Collectors.toList())

Это даст вам список ваших отформатированных целых чисел.

...