【问题标题】:C# padding right equivalent in java? [duplicate]java中的C#填充权等价物? [复制]
【发布时间】:2017-04-04 18:57:36
【问题描述】:

我正在尝试将 c# 中的以下代码转换为 java。而且我在转换它时遇到了困难。请任何人都可以建议我用 Java 做一个简单的方法。

 if (Password.Length <= 8)
            Password = Password.PadRight(8);
        else
            Password = Password.PadRight(20);

【问题讨论】:

  • 您可以使用 StringUtils 或者如果您的字符串仅包含整数,那么您也可以通过将字符串解析为 inetger 来使用字符串格式

标签: java


【解决方案1】:

您将无法修改 String 类中内置的方法,因此我认为最好编写 static 实用方法来重现 the C# methods 的行为。

代码可能看起来像这样(但请务必在使用这些方法或您编写或引入的任何其他方法之前编写您自己的单元测试)。

public static void main(String[] args) {
    String original = "text";
    int padToLength = 10;
    System.out.println("Padded:\n'" + padRight(original, padToLength) + "'");
    System.out.println("Padded:\n'" + padRight(original, padToLength, '@')
            + "'");
}

public static String padRight(String original, int padToLength) {
    return padRight(original, padToLength, ' ');
}

public static String padRight(String original, int padToLength, char padWith) {
    if (original.length() >= padToLength) {
        return original;
    }
    StringBuilder sb = new StringBuilder(padToLength);
    sb.append(original);
    for (int i = original.length(); i < padToLength; ++i) {
        sb.append(padWith);
    }
    return sb.toString();
}

这将输出到控制台:

Padded with spaces:
'text      '
Padded with custom character:
'text@@@@@@'

【讨论】:

    【解决方案2】:

    您可以使用 Apache String util 进行填充(现成的!解决方案)

    https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#rightPad-java.lang.String-int-

    或者你可以使用字符串格式

    Password = String.format("%20s", Password); 代替 Password = Password.PadRight(20);

    Password = String.format("%8s", Password); 代替 Password = Password.PadRight(8);

    【讨论】:

      猜你喜欢
      • 2012-08-10
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2018-05-17
      相关资源
      最近更新 更多