在C#中给出一定长度的字符串作为输入时使用Insert

时间:2016-08-31 06:20:43

标签: c# insert

我想要做的是如果用户输入像0500这样的四个字符,我想在第二个字符之后添加“:”,所以它变成05:00。从试验和错误看,似乎没有正确插入。

我的部分代码是

        string timeInput = Console.ReadLine();
        string[] timeSplit = timeInput.Split(':');

        if(timeInput.Length == 4) { // if string = four
            timeInput = timeInput.Insert(1, ":");
            }

4 个答案:

答案 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, ":");
}