我嘗試轉換下面的代碼是用C#與Java。而我在轉換它時遇到了困難。請任何人都可以給我一個簡單的方法來用Java來做到這一點。C#填充權等同於Java的?
if (Password.Length <= 8)
Password = Password.PadRight(8);
else
Password = Password.PadRight(20);
我嘗試轉換下面的代碼是用C#與Java。而我在轉換它時遇到了困難。請任何人都可以給我一個簡單的方法來用Java來做到這一點。C#填充權等同於Java的?
if (Password.Length <= 8)
Password = Password.PadRight(8);
else
Password = Password.PadRight(20);
您可以使用Apache的字符串UTIL用於填充(現成的!解決方案)
或者你可以使用字符串格式
Password = String.format("%20s", Password);
代替Password = Password.PadRight(20);
和 Password = String.format("%8s", Password);
代替Password = Password.PadRight(8);
您將無法修改構建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:
'[email protected]@@@@@'
可以使用StringUtils的,或者如果你的字符串只包含整數,那麼你可以通過解析字符串轉換成INETGER使用字符串格式以及 –