Форматирование моей строки - PullRequest
3 голосов
/ 07 января 2011

Мне нужно записать значения в валюте, такие как 35,40 доллара (тридцать пять долларов и сорок центов), и после этого я хочу написать "****"

, поэтому в конце получится: thirty five dollars and forty cents********* вМаксимум 100 символов

Я задал вопрос о чем-то очень вероятном, но я не мог понять основную команду.

String format = String.format("%%-%ds", 100);
String valorPorExtenso = String.format(format, new Extenso(tituloTO.getValor()).toString());

Что мне нужно изменить в формате, чтобы поставить *** в конце моего предложения?То, как оно сейчас, ставит пробелы.

Ответы [ 5 ]

2 голосов
/ 07 января 2011

Возможно, вы захотите взглянуть на commons-lang http://commons.apache.org/lang/api-release/index.html

У меня сложилось впечатление, что вы хотите дополнить это до 100 символов.

http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringUtils.html#rightPad%28java.lang.String,%20int,%20java.lang.String%29

Другой вариант - создать базовую строку из 100 '*' символов.

Создайте построитель строк и выполните следующие действия:

StringBuilder sb= new StringBuilder(new Extenso(tituloTO.getValor()).toString());
sb.append(STARS_STR);
String val= sb.substring(0, 100);

Это должно получить форматированное значение.

2 голосов
/ 07 января 2011

Я бы сделал:

String line = "thirty five dollars and forty cents";
StringBuilder lineBuffer = new StringBuilder(line);
for(int i=0; i < 100 - line.length(); i++){
    lineBuffer.append("*");
}
line = lineBuffer.toString();
1 голос
/ 07 января 2011

Это форматирование даст вам 100 символов, включая вашу строку

String.format("%-100s", "thirty five dollars and forty cents.").replaceAll("  ", "**");

ОБНОВЛЕНИЕ:

String.format("%-100s", "thirty five dollars and forty cents.").replaceAll("  ", "**").replace("* ", "**");
1 голос
/ 07 января 2011

Краткий ответ, вы не можете дополнить ничем, кроме пробелов, используя String.format.Или используйте apache StringUtils или напишите фрагмент кода, чтобы сделать это самостоятельно, здесь есть ответ http://www.rgagnon.com/javadetails/java-0448.html

0 голосов
/ 07 января 2011

Вы не можете с String.format (), однако есть утилиты, чтобы сделать это в Apache StringUtils.Или просто напишите небольшой метод, который добавляет * для указанной длины.

...