c# - 添加用于填充字符串的参数 (C#)
问题描述
{0,N}
格式化用空格在左边填充一个字符串。例如:
string [] names = { "A", "Bob", "Charles" };
Console.WriteLine("{0}{0,15}", names[0]);
Console.WriteLine("{0}{0,13}", names[1]);
Console.WriteLine("{0}{0,10}", names[2]);
这导致总长度为 16 个字符的行:
A A
Bob Bob
Charles Charles
您可以使用 来实现相同的目的String.PadLeft
,例如:
foreach (var name in names)
{
Console.WriteLine("{0}{1}", name, name.PadLeft(16-name.Length, ' '));
}
尝试将参数添加到{0,N}
格式化编译,但在运行时抛出异常:
foreach (var name in names)
{
Console.WriteLine("{0}{0,16-name.Length}", name);
}
是否可以将参数传递给{0,N}
样式格式?
解决方案
您可以使用字符串插值并将格式模式的大括号加倍:
string[] names = { "A", "Bob", "Charles" };
int paddingMax = 16;
foreach (string name in names)
Console.WriteLine($"{{0}}{{0,{paddingMax - name.Length}}}", name);
输出:
A A
Bob Bob
Charles Charles
检查爆发:
foreach ( string name in names )
{
int padding = paddingMax - name.Length;
if ( padding < 0 )
Console.WriteLine("Padding error for: " + name);
else
Console.WriteLine($"{{0}}{{0,{padding}}}", name);
推荐阅读
- javascript - 在 Javascript 中添加事件监听器使我的(简单)数学加倍
- macos - 是否有任何选项可以使用电子检查 macOS 中的可访问权限状态(是否授予应用程序)
- azure-machine-learning-studio - 从 Azure 机器学习运行注册模型,无需下载到本地文件
- firebase - 如何修复这个 Firebase 一直给我这个错误 Paths must not contain // in them., null, java.lang.IllegalArgumentException: Invalid path
- python - Python:如何使用集合?[问题]
- swift - CAAnimationGroup 计时
- java - Android SimpleDateFormat 中的错误
- python - 为什么我的循环逻辑的 Python CSV 不起作用
- bash - 我如何获得 bash 的“find -rename”命令来打印它要做什么而不做它?
- python - Tkinter:几何与框架一起工作正常,但一旦在框架内使用笔记本就会混乱