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

C# 在C中输入一定长度的字符串时使用Insert#,c#,insert,C#,Insert,我想做的是,如果用户输入四个字符,比如0500,我想在第二个字符后添加“:”,这样它就变成了05:00。经过反复试验,它似乎没有正确插入 所以我的部分代码是 string timeInput = Console.ReadLine(); string[] timeSplit = timeInput.Split(':'); if(timeInput.Length == 4) { // if string = four time

我想做的是,如果用户输入四个字符,比如0500,我想在第二个字符后添加“:”,这样它就变成了05:00。经过反复试验,它似乎没有正确插入

所以我的部分代码是

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

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

timeInput = timeInput.Insert(1, ":");

要在第二个索引处插入

string  0 5 0 0
index  0|1|2|3|4 

如果输入不包含任何“:”,则不能按“:”拆分字符串。因此,您不需要变量
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”作为输出。

Insert方法的第一个参数是要插入任何字符的索引号,在两位数之后,索引号是
2
,因此应该是
2

timeInput = timeInput.Insert(2, ":");
为什么要在没有插入
的地方使用
拆分输入?innsert后拆分
我想是正确的

string timeInput = Console.ReadLine();
if(timeInput.Length == 4) 
 { // if string = four
    timeInput = timeInput.Insert(2, ":");
 }
string[] timeSplit = timeInput.Split(':');

字符串中的单个字符称为
char

虽然
字符串的长度为4,但索引从0开始

string timeInput = "0500"
为其编制索引时,它将如下所示:

string timeInput = Console.ReadLine();
if (timeInput.Length == 4)   // if input = "0500" -> true
    timeInput = timeInput.Insert(2, ":");
Console.WriteLine(timeInput);    // Output: 05:00
时间输入[0]->0

时间输入[1]->5

时间输入[2]->0

时间输入[3]->0

这就是为什么需要将
放在位置2上的原因

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

你错过了正确的索引。它应该是2,而不是1。不要混淆“字符串”和“字符”这两个术语。我已经编辑了你的问题。是的,因为我在这里试图做的是,如果像05:00这样的输入是经过拆分的,但是如果输入了0500,我想将其更改为05:00。哦,我明白了,如果语句出现,我必须声明拆分。是我放1的愚蠢错误,现在才意识到