Правая панель с нулями
Извините, если этот вопрос уже сделан, я сделал глубокий поиск и ничего.
Теперь я знаю, что:
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');