我想要做的是如果用户输入像0500这样的四个字符,我想在第二个字符之后添加“:”,所以它变成05:00。从试验和错误看,似乎没有正确插入。
我的部分代码是
string timeInput = Console.ReadLine();
string[] timeSplit = timeInput.Split(':');
if(timeInput.Length == 4) { // if string = four
timeInput = timeInput.Insert(1, ":");
}
答案 0 :(得分:3)
您无法将字符串拆分为':'如果您的输入不包含任何':'。所以你不需要变量timeSplit
。你可以这样做:
string timeInput = Console.ReadLine();
if (timeInput.Length == 4) // if input = "0500" -> true
timeInput = timeInput.Insert(2, ":");
Console.WriteLine(timeInput); // Output: 05:00
使用timeInput.Insert(1, ":")
,你会得到" 0:500"作为输出。
答案 1 :(得分:1)
替换
timeInput = timeInput.Insert(1, ":");
带
timeInput = timeInput.Insert(2, ":");
将:
插入第二个索引
string 0 5 0 0
index 0|1|2|3|4
答案 2 :(得分:0)
Insert
方法的第一个参数是您要插入任何字符的索引号,在索引号为2
两位数之后,它应该是2
而不是{{1 }}
1
你为什么要使用timeInput = timeInput.Insert(2, ":");
来分割输入,而你没有将:
插入其中?在innsert :
之后拼接是正确的我猜
:
答案 3 :(得分:0)
string
中的单个字符称为char
虽然string
的长度为4,但索引从0开始!
string timeInput = "0500"
当你为它编制索引时,它看起来像这样:
timeInput [0] - > 0
timeInput [1] - > 5
timeInput [2] - > 0
timeInput [3] - > 0
这就是你需要将:
放在第2位
if(timeInput.Length == 4) // if string = four
{
timeInput = timeInput.Insert(2, ":");
}