c# - c#如何将二维数组列与字符串对齐
问题描述
我的问题是如何对齐单词将在另一个下方的列。我做了一些简单的翻译,我希望它们保持一致。我设法通过使用来对齐它们,\t
但我认为可能还有其他方法。这是我的代码:
string[,] slownik = new string[10, 3];
slownik[0, 0] = "Klucz";
slownik[1, 0] = "Biurko";
slownik[2, 0] = "Drzewo";
slownik[3, 0] = "Liść";
slownik[4, 0] = "Łóżko";
slownik[5, 0] = "Ładowarka";
slownik[6, 0] = "Plecak";
slownik[7, 0] = "Głośnik";
slownik[8, 0] = "Szkoła";
slownik[9, 0] = "Zadanie Domowe";
slownik[0, 1] = "\t\t Schlüssel";
slownik[1, 1] = "\t Schreibtisch";
slownik[2, 1] = "\t Baum";
slownik[3, 1] = "\t\t Wedel";
slownik[4, 1] = "\t\t Bett";
slownik[5, 1] = "\t Ladegerät";
slownik[6, 1] = "\t Rucksack";
slownik[7, 1] = "\t Lautsprecher";
slownik[8, 1] = "\t Schule";
slownik[9, 1] = "Hausaufgabe";
slownik[0, 2] = "\t Key";
slownik[1, 2] = "\t Desk";
slownik[2, 2] = "\t\t Tree";
slownik[3, 2] = "\t Leaf";
slownik[4, 2] = "\t\t Bed";
slownik[5, 2] = "\t Charger";
slownik[6, 2] = "\t Backpack";
slownik[7, 2] = "\t Speaker";
slownik[8, 2] = "\t School";
slownik[9, 2] = "\t Homework";
for (int i=0; i<10; i++) { //Console.Write(" ");
Console.WriteLine(slownik[i, 0] + " \t " + slownik[i, 1] + " \t " + slownik[i, 2]);
}
解决方案
我会\t
从你的数组元素中删除并只保留名称。然后,您可以根据每列中最长的字符串计算填充值,或者只是硬编码填充值以将列隔开。
就像是:
using System;
public class Program
{
public static void Main()
{
string[, ] slownik = new string[10, 3];
slownik[0, 0] = "Klucz";
slownik[1, 0] = "Biurko";
slownik[2, 0] = "Drzewo";
slownik[3, 0] = "Liść";
slownik[4, 0] = "Łóżko";
slownik[5, 0] = "Ładowarka";
slownik[6, 0] = "Plecak";
slownik[7, 0] = "Głośnik";
slownik[8, 0] = "Szkoła";
slownik[9, 0] = "Zadanie Domowe";
slownik[0, 1] = "Schlüssel";
slownik[1, 1] = "Schreibtisch";
slownik[2, 1] = "Baum";
slownik[3, 1] = "Wedel";
slownik[4, 1] = "Bett";
slownik[5, 1] = "Ladegerät";
slownik[6, 1] = "Rucksack";
slownik[7, 1] = "Lautsprecher";
slownik[8, 1] = "Schule";
slownik[9, 1] = "Hausaufgabe";
slownik[0, 2] = "Key";
slownik[1, 2] = "Desk";
slownik[2, 2] = "Tree";
slownik[3, 2] = "Leaf";
slownik[4, 2] = "Bed";
slownik[5, 2] = "Charger";
slownik[6, 2] = "Backpack";
slownik[7, 2] = "Speaker";
slownik[8, 2] = "School";
slownik[9, 2] = "Homework";
for (int i = 0; i <= slownik.GetUpperBound(0); i++)
{
Console.WriteLine(slownik[i, 0].ToString().PadRight(25) + slownik[i, 1].ToString().PadRight(25) + slownik[i, 2]);
}
}
}
结果
Klucz Schlüssel Key
Biurko Schreibtisch Desk
Drzewo Baum Tree
Liść Wedel Leaf
Łóżko Bett Bed
Ładowarka Ladegerät Charger
Plecak Rucksack Backpack
Głośnik Lautsprecher Speaker
Szkoła Schule School
Zadanie Domowe Hausaufgabe Homework
如果要计算填充,可以尝试类似
// Column 1 padding
int colPad1 = 0;
for (int i = 0; i <= slownik.GetUpperBound(0); i++)
{
if (slownik[i, 0].ToString().Length > colPad1)
{
colPad1 = slownik[i, 0].ToString().Length;
}
}
// Column 2 padding
int colPad2 = 0;
for (int i = 0; i <= slownik.GetUpperBound(0); i++)
{
if (slownik[i, 1].ToString().Length > colPad2)
{
colPad2 = slownik[i, 1].ToString().Length;
}
}
然后使用这些填充值,例如:
for (int i = 0; i <= slownik.GetUpperBound(0); i++)
{
Console.WriteLine(slownik[i, 0].ToString().PadRight(colPad1+5) + slownik[i, 1].ToString().PadRight(colPad2+5) + slownik[i, 2]);
}
推荐阅读
- azure - Azure Kubernetes 服务纵向扩展触发器
- javascript - 在javascript中设置src img标签
- javascript - 直接访问文档查询数组中的文档会在 onSnapshot() 块之外返回未定义
- cakephp - 在 URL 中隐藏控制器路径
- php - 更好地了解 laravel 上的 @foreach
- firebase - 如何在离开页面时调用firebase查询
- python - 如何在 GDB 上获取用 python 编写的新函数?
- r - 根据数据表的行数添加数字从 1 到 7 的列
- laravel - Laravel 和 Vue.js 表单验证错误
- python-3.x - 订阅和阅读主题:ActiveMQ & Python