Java中实现String.padLeft和String.padRight的示例
程序员文章站
2024-03-31 14:55:10
因为习惯了c#中的padleft和padright,接触java后突然失去这两个功能,觉得别扭,就试着实现了这两个方法。
java中string.format()中带有字...
因为习惯了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中JVM的重排序详细介绍
下一篇: Python部署web开发程序的几种方法