读取一个字符串,然后将其打印在一个框架周围

时间:2017-10-26 09:38:32

标签: java

我需要编写一个读取字符串的代码然后将其打印出来并将其打印出来 由星号组成,宽度与弦的长度相匹配。 例如,如果字符串为Shakespeare,则程序应打印如下: -

*****************
*               *
*  Shakespeare  *
*               *
*****************

注意:如果str是对字符串的引用,则str.length()是其长度。

我完全输了!我开始为自己学习,我需要一些帮助!有人可以为这种情况提供鳕鱼,或者给我发送任何视频的链接来学习这个?

非常感谢

2 个答案:

答案 0 :(得分:0)

我会把问题分成小块,试着自己弄清楚确切的代码。

您需要打印以下行(让l为字符串的长度):

  • 一行(l + 6)个星号。
  • 一行带有一个星号,后跟(l + 4)个空格,另一个带有星号
  • 一行带有一个星号,两个空格,一个字符串,另外两个空格,最后一个星号
  • 一行带有一个星号,后跟(l + 4)个空格,另一个带有星号
  • 一行(l + 6)个星号。

请注意,我们打印(l + 6)星号和(l + 4)个空格是考虑样本输出中的填充。

答案 1 :(得分:0)

如果你真的需要它,这是一个代码。

public static void main(String[] args){


    String str = "Shakespeare";

    printWithBorder(str);
}

public static void printWithBorder(String str) {
    int len = str.length();

    //1st line.
    for (int i = 0; i < len + 4; i++) {
        System.out.print("*");
    }
    System.out.println("");

    //second line.
    System.out.print("*");
    for (int i = 0; i < len + 2; i++) {
        System.out.print(" ");
    }
    System.out.println("*");
    //third line
    System.out.println("* " + str + " *");

    //print forth line as the second line.
    System.out.print("*");
    for (int i = 0; i < len + 2; i++) {
        System.out.print(" ");
    }
    System.out.println("*");
    //print fifth line as 1st line.
    for (int i = 0; i < len + 4; i++) {
        System.out.print("*");
    }
    System.out.println("");
}