因为习惯了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(),charr,src.length());
for (int i = src.length(); i < len; i++) {
charr[i] = ch;
}
return new String(charr);
}
/**
* @作者 尧
* @功能 String右对齐
*/
public static String padRight(String src,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",'-') + "*");
输出结果:
这样在Java中处理字符串对齐就可以像C#那样简单了。
效率也是有保障的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250