Правая панель с нулями

Извините, если этот вопрос уже сделан, я сделал глубокий поиск и ничего.

Теперь я знаю, что:

String.format("%05d", price);

Будет добавлена ​​моя цена с нулями влево, поэтому цена 25 приведет к 00025

Что делать, если я хочу поместить их вправо, поэтому результат 25000? Как это сделать, используя только шаблоны String.format?

Ответы

Ответ 1

Вы можете использовать:

String.format("%-5s", price ).replace(' ', '0')

Могу ли я сделать это, используя только шаблон формата?

String.format использует Formatter.justify так же, как метод String.printf. Из этого сообщения вы увидите, что выходное пространство жестко закодировано, поэтому необходимо использовать String.replace.

Ответ 2

Попробуйте следующее:

String RightPaddedString = org.apache.commons.lang.StringUtils.rightPad(InputString,NewStringlength,'paddingChar');

Ответ 3

Пожалуйста, попробуйте прочитать этот документ, посмотрите, может ли вам помочь библиотека apache commons StringUtils

Я сделал такой код:

import org.apache.commons.lang3.StringUtils;

public static void main(String[] args)  {   
  String str = "123";
  str = StringUtils.leftPad(str,10,"0"); //you can also look the rightPad function.
  System.out.println(str);
}

Ответ 4

Кредиты на beginnersbook.com, это работающее решение проблемы:

public class PadRightTest {
  public static void main(String[] argv) {
    System.out.println("#" + rightPadZeros("mystring", 10) + "@");
    System.out.println("#" + rightPadZeros("mystring", 15) + "@");
    System.out.println("#" + rightPadZeros("mystring", 20) + "@");
  }

  public static String rightPadZeros(String str, int num) {
    return String.format("%1$-" + num + "s", str).replace(' ', '0');
  }
}

а выход:

#[email protected]
#[email protected]
#[email protected]

Ответ 5

если вы хотите обойтись без формата или какой-либо функции, тогда использовали этот простой трюк System.out.println(price+"000");

Ответ 6

Используйте эту функцию для правильного заполнения.

private String rightPadding(String word, int length, char ch) {
   return (length > word.length()) ? rightPadding(word + ch, length, ch) : word;
}

как использовать?

rightPadding("25", 5, '0');