当前位置: 首页 > 知识库问答 >
问题:

用java中的一种方法对中、左右填充进行了说明

华福
2023-03-14

我最近开始学习java,在我的java类中,我必须创建一个方法,它在我的主java类中打印出来,文本向左、居中和向右。但是,我想在不使用printf的情况下完成此操作。

这是我的文字:

MyJavaUtils.formatText("This is my text left justified", 'l', 38);
MyJavaUtils.formatText("This is my text right justified", 'r', 38);
MyJavaUtils.formatText("This is my text centred", 'c', 38);
System.out.println("----------------------------------------");
MyJavaUtils.formatText("This is also left justified", 'l', 38);
MyJavaUtils.formatText("This is also right justified", 'r', 38);
MyJavaUtils.formatText("This is also centred", 'c', 38);
System.out.println("----------------------------------------");
MyJavaUtils.formatText("Also left", 'l', 18);
MyJavaUtils.formatText("Also right", 'r', 18);
MyJavaUtils.formatText("Also centred", 'c', 18);
System.out.println("----------------------------------------");
public static void formatText(String text, char justified, int wide) {
        int space = wide - text.length();
        for (int num = 0; num < space; ++num) {
            System.out.print(" ");
        }
        System.out.println(text);
    }
}
>This is my text left justified        <
>       This is my text right justified<
>       This is my text centred        <

然而,我不太确定,如果不使用printf,我如何能够向左、右和中心打印出来。我被告知通过找到文本的字符串长度来做到这一点,我有。然而,我不确定如何应用它打印出适当数量的空格,以填充输出到正确的字符数。当我做中心输出时,如果额外的空格是奇数,我应该向右加+1个空格。

如有任何帮助或暗示,将不胜感激!

共有1个答案

孙思源
2023-03-14

我想这个方法能满足你的需要。

public static void formatText(String text, char justified, int wide)
{
    int nOfSpaces = wide - text.length();
    String spaces = new String();
    String result = new String();

    switch (justified)
    {
        case 'r':
            spaces = new String(new char[nOfSpaces]).replace('\0', ' ');
            result = spaces + text;
            break;
        case 'l':
            spaces = new String(new char[nOfSpaces]).replace('\0', ' ');
            result = text + spaces;
            break;
        case 'c':
            int lxNOfSpaces = nOfSpaces / 2;
            int rxNOfSpaces = (nOfSpaces % 2) == 0 ? lxNOfSpaces : lxNOfSpaces + 1;

            String lxSpaces = new String(new char[lxNOfSpaces]).replace('\0', ' ');
            String rxSpaces = new String(new char[rxNOfSpaces]).replace('\0', ' ');

            result = lxSpaces + text + rxSpaces;
            break;
    }
    System.out.println(result);
}
 类似资料:
  • 本文向大家介绍oracle中左填充(lpad)和右填充(rpad)的介绍与用法,包括了oracle中左填充(lpad)和右填充(rpad)的介绍与用法的使用技巧和注意事项,需要的朋友参考一下 前言 在实际应用中经常会用到固定字段的长度,但往往有些数据不能达到规定的长度,这是就需要我们用其他的字符来填充, 在Oracle中有函数解决这一问题,下面话不多说了,来一起看看详细的介绍吧。 语法 LPAD(

  • 在Java中,如何使用printf()对同一行的输出进行一致的左对齐和右对齐?这是所有left aligned的代码: 这是所有东西都保持对齐的输出: 相反,如果第三个元素(0.20,1.00,9.00)是正确的,那么我想要的是什么。我在上面的输出中指出“l”是左对齐的,但我希望变量在“r”所在的位置是右对齐的。如何使右边的输出(0.20,1.00,9.00)右对齐,同时使左边的输出(苹果,派,奶

  • 为什么能起作用?请给我解释一下为什么和怎么做!

  • 抱歉,如果这个问题已经提出,我已经做了深入的搜索,什么都没有。 现在,我知道: 会在左边用0填充我的价格,所以25的价格会导致00025 如果我想把它们垫在右边,结果是25000呢?如何仅使用String.format模式?

  • 问题内容: 今天在玩一些css3,主要是过渡。 我想实现的是,悬停在li元素上时,背景将以不同的颜色从左到右填充,理想情况下,我希望能够填充一半或全部。 我需要使用房产吗 任何人都可以给我一些有关实现这一目标的指示。 谢谢 问题答案: 您将需要在此处执行的操作是使用线性渐变作为背景并为背景位置设置动画。在代码中: 使用线性渐变(红色为50%,蓝色为50%),并告诉浏览器背景是元素宽度(宽度:200

  • 问题内容: 但是我没有得到如何用零填充字符串。 输入:“ 129018”输出:“ 0000129018” 总输出长度应为TEN。 问题答案: 如果你的字符串仅包含数字,则可以将其设为整数,然后进行填充: