java中的C#填充权等价物? [复制]

Posted

技术标签:

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

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

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

【问题讨论】:

您可以使用 StringUtils 或者如果您的字符串仅包含整数,那么您也可以通过将字符串解析为 inetger 来使用字符串格式 【参考方案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);

【讨论】:

以上是关于java中的C#填充权等价物? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C# 中的 C++ 内存复制等价物

C++ 中的 <map> 的 C# 等价物是啥? [复制]

C# 中的 Java RuntimeException 等价物?

C# 中的 Java matchesAt() 等价物

什么是 C# 的 VB.NET 等价物?操作员? [复制]

Java 和 Scala 中 C# 的访问修饰符的等价物是啥?