在同一行上打印两个不同的循环

时间:2016-03-05 18:34:02

标签: java printing

大家好我无法弄清楚如何在同一行上打印这两个语句。

   for(int index = 1; index < word.length(); index++){   
        System.out.printf("\n%s", builder.charAt(index));
    }

    for(int index = word.length()-2; index >= 0; index--){
        System.out.printf("\n%s%s",space ,backWards.charAt(index));
    }

我的目标是给这个方法一个单词并打印矩形,例如:
word = java
它将打印:
java的
a v
v a
avaj

请尽量保持简单,因为我还是初学者

2 个答案:

答案 0 :(得分:0)

垂直打印字符串的唯一方法是遍历它的字符并在每行上打印其中一个

String str = "JAVA";
System.out.println(str);
for(int i=1; i<str.length()-1; i++){
    System.out.print(str.charAt(i));
    for(int j=1; j<str.length()-1; j++){
        System.out.print(' ');
    }
    System.out.println(str.charAt(str.length()-1-i));
}
for(int i=0; i<str.length(); i++){
    System.out.print(str.charAt(str.length()-1-i));
}

答案 1 :(得分:0)

这是一种方法:

            String word = "java";
            // print first line
            System.out.println(word);
            String spaces = getSpacesFor(word.length() - 2);
            // print out middle lines
            for(int i = 1; i < word.length() - 1; i ++) {
                // first character is from the normal word order
                String s = "" + word.charAt(i);
                // add middle spaces
                s += spaces;
                // add last character which is backwards order
                s += word.charAt(word.length() - i - 1);
                // print out
                System.out.println(s);
            }

            // print backwards word
            for(int i = 0; i < word.length(); i ++) {
                System.out.print(word.charAt(word.length() - i - 1));
            }

getSpacesFor将是一种方法:

public static String getSpacesFor(int num) {
    String s = "";
    for(int i = 0; i < num; i ++) {
        s += " ";
    }

    return s;
}