Java中实现String.padLeft和String.padRight

Posted 尧的BLOG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中实现String.padLeft和String.padRight相关的知识,希望对你有一定的参考价值。

因为习惯了C#中的padLeft和padRight,接触Java后突然失去这两个功能,觉得别扭,就试着实现了这两个方法。

 

Java中String.format()中带有字符串对齐功能如下:

System.out.println(String.format("*%1$-10s*", "moon"));
System.out.println(String.format("*%1$10s*", "moon"));

输出:

 

以上方法经过简单的变换可以得到:

public static String padWhitespaceLeft(String s, int len) {
    return String.format("%1$" + len + "s", s);
}

public static String padWhitespaceRight(String s, int len) {
    return String.format("%1$-" + len + "s", s);
}

调用下面方法:

System.out.println("*" + padWhitespaceLeft("moon", 12) + "*");
System.out.println("*" + padWhitespaceRight("moon", 12) + "*");

可以得到结果:

 

以上只是介绍左右对齐时,补空白符的方法,但是在实际开发过程中,单纯的补空白符也许满足不了开发要求,为此我还要做一次强化改进: 

    /**
     * @作者 尧
     * @功能 String左对齐
     */
    public static String padLeft(String src, int len, char ch) {
        int diff = len - src.length();
        if (diff <= 0) {
            return src;
        }

        char[] charr = new char[len];
        System.arraycopy(src.toCharArray(), 0, charr, 0, src.length());
        for (int i = src.length(); i < len; i++) {
            charr[i] = ch;
        }
        return new String(charr);
    }
    /**
     * @作者 尧
     * @功能 String右对齐
     */
    public static String padRight(String src, int len, char ch) {
        int diff = len - src.length();
        if (diff <= 0) {
            return src;
        }

        char[] charr = new char[len];
        System.arraycopy(src.toCharArray(), 0, charr, diff, src.length());
        for (int i = 0; i < diff; i++) {
            charr[i] = ch;
        }
        return new String(charr);
    }

调用方法如下:

System.out.println("*" + padLeft("moon", 12, \'-\') + "*");
System.out.println("*" + padRight("moon", 12, \'-\') + "*");

输出结果:

 

这样在Java中处理字符串对齐就可以像C#那样简单了。

效率也是有保障的。

 

以上是关于Java中实现String.padLeft和String.padRight的主要内容,如果未能解决你的问题,请参考以下文章

str() 如何在 python 中实现?

Java怎么在一个包内的不同java文件中实现变量的传递

如何在qt中实现字符滚动显示

js函数中实现4个值相比较取最大的和最小的。

Oracle中实现find_in_set

在js中实现一个字符串的反转