我需要写出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());
我需要更改格式才能将***
放在句子的末尾?
它现在的方式是放空格。
答案 0 :(得分:2)
我愿意:
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 :(得分:2)
你可能想看看commons-lang http://commons.apache.org/lang/api-release/index.html
我认为你想把它填充到100个字符。
另一个选项是创建一个100'*'字符的基本字符串。
创建字符串构建器并执行以下操作:
StringBuilder sb= new StringBuilder(new Extenso(tituloTO.getValor()).toString());
sb.append(STARS_STR);
String val= sb.substring(0, 100);
那应该取出格式化的值。
答案 2 :(得分:1)
简短回答,您无法使用String.format填充空格以外的任何内容。要么使用apache StringUtils,要么写一段代码来自行完成,这里有一个答案http://www.rgagnon.com/javadetails/java-0448.html
答案 3 :(得分:1)
此格式化将为您提供100个字符,包括您的字符串
String.format("%-100s", "thirty five dollars and forty cents.").replaceAll(" ", "**");
更新:
String.format("%-100s", "thirty five dollars and forty cents.").replaceAll(" ", "**").replace("* ", "**");
答案 4 :(得分:0)
你不能使用String.format(),但是在apache的StringUtils中可以使用它。或者只是编写一个小方法,将*附加到指定的长度。