【问题标题】:how to properly format in for loop如何在for循环中正确格式化
【发布时间】:2012-12-29 11:44:51
【问题描述】:

我有一个循环问题。 它像这样格式化文本:

cat
 cats
  blablabla
   end

而不是这个:

cat
   cats
       blablablabla

如屏幕截图所示,我想在每一行添加与前面所有行的单词长度相等的空格数。

        int length=i+1
        int j;

        for(i=0; i<length; i++){    
            for(j=0; j<i; j++)
              System.out.print(" ");
                  System.out.print(words[i]);
                  System.out.println();
        }
    }

【问题讨论】:

  • “为最后一个单词长度的空格添加一个额外的循环” - 这是一个难以理解的事情。
  • 这既不是问题,也没有任何信息可以解决您的“问题”

标签: java loops text for-loop format


【解决方案1】:
public void leftpad(int l, String s) {
   StringBuffer b = new StringBuffer();
   for(int j = 0; j < l; j++) b.append(" ");
   b.append(s);
   return b.toString();
}
public void printWTF() {
    int length = i + 1;
    int wl = 0;
    for(int i = 0; i < length; i++){              
          System.out.println(leftpad(wl, words[i]));
          wl += words[i].length;
    }
}

【讨论】:

    【解决方案2】:

    简单的任务:

        String[] words = {"cat", "cats", "test"};
        int leftPaddding = 0;
        for(int i = 0; i < words.length; i++){
            for(int j = 0; j < leftPaddding; j++) {
                System.out.print(" ");
            }
            leftPaddding += words[i].length();
            System.out.println(words[i]);
        }
    

    打印

    cat
       cats
           test
    

    【讨论】:

      【解决方案3】:

      怎么样:

      for(i=0; i<length; i++) {    
            for(j=0; j<i; j++)
               for(k = 0; k < words[j].length(); k++)
                  System.out.print(" ");
            System.out.print(words[i]);
            System.out.println();
      }
      

      【讨论】:

        猜你喜欢
        • 2021-12-30
        • 2016-10-10
        • 1970-01-01
        • 2018-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 2020-04-29
        相关资源
        最近更新 更多