【问题标题】:Adding whitespace in Java在 Java 中添加空格
【发布时间】:2011-07-12 02:19:54
【问题描述】:

有一个类trim()可以去掉空格,添加/填充怎么样?

注意:" " 不是解决方案。

【问题讨论】:

  • 添加一些“之前”和“之后”的例子。

标签: java whitespace space trim spaces


【解决方案1】:

我认为您在谈论用空格填充字符串。

一种方法是使用字符串format codes.

例如,如果您想用空格将字符串填充到特定长度,请使用以下内容:

String padded = String.format("%-20s", str);

在格式化程序中,% 引入了格式化序列。 - 表示该字符串将左对齐(将在字符串末尾添加空格)。 20 表示生成的字符串长度为 20 个字符。 s为字符串格式码,格式序列结束。

【讨论】:

  • 字符和空格的长度不同,如何保证长度一致?
  • @surendrapanday 很抱歉,我不明白你的问题。你能解释更多吗?也许是一个例子?
  • 此解决方案在控制台中产生正确的输出,但是当在 BufferedImage 中使用相同的字符串从字符串创建 Image 时,这会产生输出。 aaa : bbb mmm : ccc
  • @surendrapanday 这在很大程度上取决于您为渲染缓冲图像而进行的Graphics 调用。要渲染格式化文本的图像,我可能会探索使用带有布局的 Swing 组件来进行绘画。这超出了本问答的范围,但如果您提出新问题,可以在此处链接。
  • 如果我使用swing组件,那么在不同平台(如Andriod、Windows、Mac等)上会有任何行为变化
【解决方案2】:

使用StringUtils类,它还包括空检查

StringUtils.leftPad(String str, int size)
StringUtils.rightPad(String str, int size)

【讨论】:

    【解决方案3】:

    如果您在代码中要添加空格的位置有可用的 EditText 实例,则下面的代码将起作用。可能有一些事情需要考虑,例如下面的代码可能会触发您设置为此 EditText 的任何 TextWatcher,idk 肯定只是说,但是当尝试像这样附加空格时这将起作用:“”,没有工作。

    messageInputBox.dispatchKeyEvent(new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_SPACE, 0, 0, 0, 0,
                            KeyEvent.KEYCODE_ENDCALL));
    

    【讨论】:

      【解决方案4】:
      String text = "text";
      text += new String(" ");
      

      【讨论】:

      • 如果您阅读了整个问题,您会看到:Note: " " is not the solution.
      【解决方案5】:

      有几种方法:

      1. 创建一个char数组然后使用Arrays.fill,最后转换为String
      2. 循环遍历每次添加一个空格
      3. Use String.format

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-13
        • 2020-01-08
        • 2020-01-28
        • 1970-01-01
        • 1970-01-01
        • 2012-09-17
        相关资源
        最近更新 更多