使用C#中的填充填充数组

时间:2017-01-19 14:53:14

标签: c# arrays

我希望用户先输入代码(例如fkuk3463kj) 阵列限制为20个。 其余的必须填充填料。 客户将使用哪种填充物(例如#,t,z,7,_,0)是他自己的选择,他将要求在代码问题之后的开头定义它。

(提示:之后(或如果可能的话)我必须决定(完成客户的愿望)填料是否必须在开头或结尾。 (例如:fkuk3463kj ##########或########## fkuk3463kj)

现在我不知道如何实现这个。我知道,这并不困难,但我不明白!我所有的尝试都不是真的成功。

有人能帮帮我吗?这将是完美的! 并提前许多!

Console.WriteLine("Please type in your company number!");
string companyNr = Console.ReadLine();
string[] CNr = new string[companyNr.Length];
Console.WriteLine("Type a filler");
string filler= Convert.ToString(Console.ReadLine());
string[] fill = new string[filler.Length];

.
.
.
.
.

(请原谅我的英语......)

6 个答案:

答案 0 :(得分:5)

据我所见,您正在使用string

 // Trim: let's trim off leading and trailing spaces: "  abc " -> "abc"
 string companyNr = Console.ReadLine().Trim();

您希望Pad的{​​{1}}长度为char length20}:

 int length = 20;

 string filler = Console.ReadLine().Trim();
 // padding character: either provided by user or default one (#) 
 char pad = string.IsNullOrEmpty(filler) ? '#' : filler[0];

 // shall we pad left: "abc" -> "##abc" or right: "abc" -> "abc##"
 // I have to decide (to complete the wish of customer) 
 //TODO: whether the filler has to be at the beginning or at the end
 bool leftPad = true;

 string result = leftPad
   ? companyNr.PadLeft(length, pad) 
   : companyNr.PadRight(length, pad);

 // in case you want a char array
 char[] array = result.ToCharArray();
 // in case you want a string array
 string[] strArray = result.Select(c => c.ToString()).ToArray();

答案 1 :(得分:2)

由于您将字符串作为输入,因此可以使用字符串填充。看这里:Padding Strings in the .NET Framework

答案 2 :(得分:2)

您可以编写一些方法(或扩展方法):

string AppendString(string str, int count, char filler, bool fromStart)
{
    return fromStart ? str.PadLeft(count, filler) : str.PadRight(count, filler);
}

答案 3 :(得分:2)

我认为此代码适合您。

Console.WriteLine("Please type in your company number!");
string companyNr = Console.ReadLine();

Console.WriteLine("Type a filler");
string filler= Convert.ToChar(Console.ReadLine());

string fill = companyNr.PadLeft(20,filler);
// or use string fill = companyNr.PadRight(20,filler);

欢迎使用StackOverflow。我也是初学者:)

答案 4 :(得分:1)

int fixedLength = 20;
string mockupInput = "bladjiea";
string filler = "-";
While(mockupInput.Length < fixedLength)
{
    mockupInput += filler;
}

这是易于使用的初学者代码。

答案 5 :(得分:0)

让我们参加一场关于谁将会写出最精美代码的比赛:

我将从最琐碎,粗暴的方法XD开始。

如果您有号码:

int fillLength = 20 - companyNr.Length; //for example, 20 chars total.

您可以在循环中填写StringBuilder

var sb = new StringBuilder()
for (int c = 0; c < fillLength; c++)
    sb.Append(filler);

string result = companyNr  + sb.ToString();