服务器之家

服务器之家 > 正文

Java中实现String.padLeft和String.padRight的示例

时间:2021-01-04 15:58     来源/作者:小尧弟

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

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

?
1
2
system.out.println(string.format("*%1$-10s*", "moon"));
system.out.println(string.format("*%1$10s*", "moon"));

输出:

Java中实现String.padLeft和String.padRight的示例

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

?
1
2
3
4
5
6
7
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);
}

调用下面方法:

?
1
2
system.out.println("*" + padwhitespaceleft("moon", 12) + "*");
system.out.println("*" + padwhitespaceright("moon", 12) + "*");

可以得到结果:

Java中实现String.padLeft和String.padRight的示例

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * @作者 尧
 * @功能 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);
}

调用方法如下:

?
1
2
system.out.println("*" + padleft("moon", 12, '-') + "*");
system.out.println("*" + padright("moon", 12, '-') + "*");

输出结果:

Java中实现String.padLeft和String.padRight的示例

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

效率也是有保障的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/preacher/p/6826585.html

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
电视剧《琉璃》全集在线观看 琉璃美人煞1-59集免费观看地址
电视剧《琉璃》全集在线观看 琉璃美人煞1-59集免费观看地址 2020-08-12
返回顶部