格式化我的字符串

时间:2011-01-07 11:14:34

标签: java string-formatting

我需要写出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 个答案:

答案 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个字符。

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 :(得分: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中可以使用它。或者只是编写一个小方法,将*附加到指定的长度。