gpt4 book ai didi

java - 将字符串格式化为包含单词/数字的字符串

转载 作者:行者123 更新时间:2023-11-29 04:29:30 25 4
gpt4 key购买 nike

所以我正在尝试创建返回字符串的函数。字符串以输入的单词开头,然后是一定数量的空格,然后是数字。空格的数量根据单词的长度而变化。这个想法是当多次调用该方法时,所有的单词和数字都应该排成一行。我有一张关于如何格式化字符串的图片。

Format Example

这是我目前拥有的功能。当我在函数中键入几个随机单词和数字并每次都使用 printLn 语句时,该函数可以正常工作并按我希望的格式打印(或如上例所示)

public String formatList(String x, int y){
String z = x;
int stringLength=x.length();
int i=0;
while(i<(30-stringLength)){
z+=" ";
i++;
}
z+=String.valueOf(y);
return z;
}

但是,当我有一个 for 循环输入一个单词和数字列表,并将其添加到一个名为 wordList 的 JTextArea 时,我得到以下结果(注意 wordDistribution 是我定义的一个对象,它本质上是一个映射条目的 ArrayList getDistribution 是返回此 ArrayList 的函数):

String x="";

for(int i=0; i<wordDistribution.getDistribution().size();i++){
String word = wordDistribution.getDistribution().get(i).getKey();
int count = wordDistribution.getDistribution().get(i).getValue();
x+=formatList(word,count)+"\n";
}
wordList.setText(x);

Resulting format

最佳答案

使用String.format() ,例如

StringBuilder buf = new StringBuilder();
buf.append(String.format("%-20s%4d%n", "Foo", 42));
buf.append(String.format("%-20s%4d%n", "Hello World", 11));
buf.append(String.format("%-20s%4d%n", "This is Great", 999));
System.out.print(buf);

输出

Foo                   42
Hello World 11
This is Great 999

关于java - 将字符串格式化为包含单词/数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44376362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com