在java中使用制表符格式化字符串和字符串数组

在java中使用制表符格式化字符串和字符串数组,java,arrays,string,tabs,string.format,Java,Arrays,String,Tabs,String.format,我有一个赋值,其中我应该有一个方法,该方法将字符串对象数组格式化,以某种方式用标题制表,并将格式化后的所有对象很好地放入一个字符串中,以便该方法返回。这个方法在一个对象类中,所以它最终将以相同的方式格式化多个对象,所以我需要它以相同的方式格式化不同的字符串长度 以下是我需要输出的样子: Hashtags: #firstHashtag #secondHashtag 每个hashtag都位于hashtag的字符串[]中 i

我有一个赋值,其中我应该有一个方法,该方法将字符串对象数组格式化,以某种方式用标题制表,并将格式化后的所有对象很好地放入一个字符串中,以便该方法返回。这个方法在一个对象类中,所以它最终将以相同的方式格式化多个对象,所以我需要它以相同的方式格式化不同的字符串长度

以下是我需要输出的样子:

      Hashtags:
                #firstHashtag
                #secondHashtag
每个hashtag都位于hashtag的字符串[]中

i、 e。 String[]hashtags=[firstHashtag,secondHashtag]

因此,基本上我需要使用string.format在包含选项卡式Hashtags:header的单个字符串上创建,然后Hashtags数组中的每个字符串位于新行上,并使用双选项卡。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;

     }

任何关于如何在这里使用格式的有用建议都将不胜感激

您的String.format语句将创建一个左对齐并填充到25个空格的字符串。例如,这一行:

System.out.println("left-justified  >" + String.format("%-25s", "hello") + "<");
产出:

left-justified  >hello                    <

另一件事是,你没有真正使用制表符,我看不到你的程序中的制表符字符。String.format正在创建长度为25且左对齐的字符串。在创建返回字符串时请记住这一点。此外,每次添加一个换行符时,循环也会被忽略。这就是您获得多行输出的原因。

如果您试图使用真正的制表符而不是空格,则只需将程序更改为如下所示:

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;

 }