我希望用户先输入代码(例如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];
.
.
.
.
.
(请原谅我的英语......)
答案 0 :(得分:5)
据我所见,您正在使用string
:
// Trim: let's trim off leading and trailing spaces: " abc " -> "abc"
string companyNr = Console.ReadLine().Trim();
您希望Pad
的{{1}}长度为char
length
(20
}:
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();