【问题标题】:how to pad space within a string in java? [duplicate]如何在java中的字符串中填充空格? [复制]
【发布时间】:2011-12-07 03:00:47
【问题描述】:

可能重复:
How can I pad a String in Java?

我有一种情况,我的 method1() 返回各种大小的字符串,我想在固定空间中显示字符串(比如长度为 50 个字符),如果长度大于,我可以使用 String.substring() 50 个字符但如果字符串长度小于 50 个字符不知道该怎么办,我该如何实现?

for example my method1() return (in different call) :
John
Michael
J
Ab

While method2() return :
first
Second
Third

我想像这样打印结果

John                 First
Michael              Second
J                    Third
Ab                   Forth

我不想使用除空格以外的任何其他字符。

【问题讨论】:

  • 我试过 String.format() 但没有帮助

标签: java string string-formatting padding


【解决方案1】:
public String toFixedLength(String str, int sz) {      
  String ret;
  int len = str.length();

  if (len == sz) {
    ret = str;
  } else if (len > sz) {
    ret = str.substring(0, sz);
  } else { // len < sz
    StringBuilder sb = new StringBuilder(str);

    char[] ch = new char[sz - len];
    Arrays.fill(ch, ' ');
    sb.append(ch);
    ret = sb.toString();
  }

  return ret;
}

【讨论】:

  • 在以下情况下不工作
【解决方案2】:

只需检查字符串的length() 并添加所需数量的空格(例如,在一个循环中)

【讨论】:

    【解决方案3】:

    如果您有一个长度小于 50 个字符的字符串并且您想将其填充,您可以这样做:

    int temp = yourstring.length
    
    for(int i = 0; i < (50-temp); i++){
      yourstring = yourstring + " ";
    }
    

    如果 yourstring 是您要填充的字符串并且您之前没有在代码中使用 i 作为整数,我很确定这会起作用。这样你只需要使用空间。

    【讨论】:

      猜你喜欢
      • 2021-05-20
      • 2012-07-21
      • 2014-03-16
      • 2010-09-28
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多