为了账号安全,请及时绑定邮箱和手机立即绑定

我正在尝试将 4 行文本居中,我正在寻找一个简单的解决方案。最终结果如下图所示

我正在尝试将 4 行文本居中,我正在寻找一个简单的解决方案。最终结果如下图所示

胡说叔叔 2022-01-12 16:00:47
文本居中这就是我希望文本在格式化后的样子。static void printCentered(String text) {    String[] textArray;    int maxi = -1;    textArray = new String[5];    textArray[0] = "Drei Chinesen mit dem Kontrabass";    textArray[1] = "sassen auf der Strasse und erzaehlten sich was.";    textArray[2] = "Da kam ein Mann: Ja was ist denn das?";    textArray[3] = "Drei Chinesen mit dem Kontrabass.";    for (int i = 0; i <= 4; i++)        if (textArray[i].length() > maxi)            maxi=textArray[i].length();    for(int i=0; i<= 4; i++)        if (maxi-textArray[i].length()!=0)        {            int diff=maxi-textArray[i].length();            System.out.print(" ");            System.out.println(textArray[i]);        }}我试图通过找出最大的线来做到这一点,然后从左边插入黑色空格。你能告诉我我做错了什么吗?
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您的代码存在一些问题:

  1. 您为 5 个字符串分配了内存,但只放置了 4 个值。出于同样的原因,它导致NullPointerException.

  2. 我不明白参数text对函数的意义;它没有在任何地方使用,所以我将其删除。

  3. 居中文本的正确逻辑是找到最大长度的字符串,然后找到要居中的字符串长度,然后使用以下公式计算要在字符串之前插入的空格数: (maxLen / 2) - (textLen / 2)

代码如下:

    static void printCentered() {

        String[] textArray = new String[5];

        int maxi = -1;

        textArray[0] = "Drei Chinesen mit dem Kontrabass";

        textArray[1] = "sassen auf der Strasse und erzaehlten sich was.";

        textArray[2] = "Da kam ein Mann: Ja was ist denn das?";

        textArray[3] = "Drei Chinesen mit dem Kontrabass.";

        textArray[4] = "Hello World!";

        for (int i = 0; i <= 4; i++)

            if (textArray[i].length() > maxi)

                 maxi = textArray[i].length();

        final int maxiByTwo = maxi / 2;

        for (int i = 0; i <= 4; i++) {

            final int textLenByTwo = textArray[i].length() / 2;

            final int diff = maxiByTwo - textLenByTwo;

            for (int j = 0; j < diff; j++)

                System.out.print(" ");

            System.out.println(textArray[i]);

        }

    }

这是工作代码的链接:https : //ideone.com/QiNIu1


查看完整回答
反对 回复 2022-01-12
  • 1 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信