Java 格式化我的字符串

Java 格式化我的字符串,java,string-formatting,Java,String Formatting,我需要写货币值,比如35.40美元(35美元40美分) 然后,我想写一些“****” 因此,最终将是: 35美元40美分********* 最多100个字符 我问了一个很可能的问题,但我不明白主要的命令 String format = String.format("%%-%ds", 100); String valorPorExtenso = String.format(format, new Extenso(tituloTO.getValor()).toString()); 我需要更改什么格

我需要写货币值,比如35.40美元(35美元40美分) 然后,我想写一些
“****”

因此,最终将是:
35美元40美分*********
最多100个字符

我问了一个很可能的问题,但我不明白主要的命令

String format = String.format("%%-%ds", 100);
String valorPorExtenso = String.format(format, new Extenso(tituloTO.getValor()).toString());
我需要更改什么格式才能在句子末尾添加
***
? 现在的方式是放置空格。

我会:

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();
String line=“三十五美元四十美分”;
StringBuilder lineBuffer=新的StringBuilder(线);
对于(int i=0;i<100-line.length();i++){
lineBuffer.append(“*”);
}
line=lineBuffer.toString();

您不能使用String.format(),但是在apache的StringUtils中有一些UTIL可以实现这一点。或者只需编写一个小方法,在指定的长度上附加*即可。

您可能需要查看commons lang

我的印象是,你想把这个增加到100个字符

另一个选项是创建100个“*”字符的基本字符串

创建字符串生成器并执行以下操作:

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

这应该会得到格式化后的值。

简而言之,除了使用String.format填充空格外,不能填充任何内容。您可以自己使用或编写一段代码,这里有一个答案

此格式将为您提供包括字符串在内的100个字符

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

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

这是更具体的“小心”副本,如果字符串末尾的空格数不均匀,则无法正常工作。生成的字符串长度为100,但如果空格数不均匀,最后一个字符将是space@morja而红实验室-我认为普林格辛恩并不热衷于得到精确的100个字符。但是如果你想要它,请检查并评论更新。