我有一个赋值,我应该有一个格式化String
对象数组的方法,用一个标题以某种方式制表,并将所有对象(格式化之后)很好地放入一个单个String
表示要返回的方法。此方法位于对象类中,因此它最终将以相同的方式格式化多个对象,因此我需要使用相同的方式格式化各种String
长度。
这就是我需要输出的样子:
Hashtags:
#firstHashtag
#secondHashtag
每个主题标签位于String[]
个标签栏中,
即。
String[] hashtags = ["#firstHashtag", "#secondHashtag"]
所以基本上我需要使用string.format()
在包含选项卡式“Hashtags:”标题的单个字符串上创建,然后将“hashtags”数组中的每个String放在一个新行上,并使用双标签。 “hashtag”数组的大小会发生变化,因为它位于对象类中。
有人可以帮我使用String.formatter吗?
这是我的方法到目前为止的样子:
public String getHashtags()
{
String returnString = "Hashtags:";
String add;
int count = 0;
while(count < hashtags.length)
{
//hashtags is an array of String objects with an unknown size
returnString += "\n";
add = String.format("%-25s", hashtags[count]);
//here I'm trying to use .format, but it doesn't tabulate, and I
//don't understand how to make it tabulate!!
count++;
returnString = returnString + add;
}
if(hashtags == null)
{
returnString = null;
}
return returnString;
}
有关格式化操作的任何有用建议都将非常感谢!!!
答案 0 :(得分:0)
您的String.format()语句将创建一个左对齐并填充为25个空格的String。例如,这一行:
System.out.println("left-justified >" + String.format("%-25s", "hello") + "<");
输出:
left-justified >hello <
另一件事是你并没有真正使用标签(我没有看到程序中的标签字符)。 String.format()创建长度为25且左对齐的字符串。在创建返回字符串时请记住这一点。此外,您的循环每次添加一个换行符。这就是你获得多行输出的原因。
答案 1 :(得分:0)
如果您尝试使用真正的标签而不是空格,那么只需将您的程序更改为如下:
public String getHashtags()
{
if(hashtags == null)
{
return null;
}
String returnString = "Hashtags:";
int count = 0;
while(count < hashtags.length)
{
//hashtags is an array of String objects with an unknown size
returnString = returnString + "\n\t\t"+hashtags[count];
count++;
}
return returnString;
}