2016-08-31 1 views
-1

Я пытаюсь сделать, если пользователь вводит четыре символа типа 0500, я хочу добавить «:» после второго символа, чтобы он стал 05:00. Из проб и ошибок он, похоже, правильно вставляется.Использование Вставки, когда определенная длина строки указана как входная в C#

Так что часть моих кодов

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

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

Вы пропустили правильный индекс приятель. Он должен быть 2, а не 1. – user3185569

+0

не смешивать термины «строка» и «символ». Я отредактировал ваш вопрос. – JimHawkins

ответ

1

заменить

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

с

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

вставить : на второй индекс

string 0 5 0 0 
index 0|1|2|3|4 
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" в качестве выходного сигнала.

+0

Да, потому что я пытаюсь сделать здесь, если входной сигнал, например, 05:00, проходит через split, но если введено 0500, я хочу изменить его на 05:00. – lufee

+0

о, я понял, должен объявить раскол после того, как выйдет, если заявление – lufee

+0

да, моя глупая ошибка там для сдачи 1, просто поймите сейчас – lufee

0

Первый аргумент Insert метода является индекс, где вы хотите вставить любой символ, после двух цифр, номер индекса 2 поэтому он должен быть 2 вместо 1

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

и почему вы вам spliting вход с использованием :, где вы не вставили :? splite после innsert : является правильным, я думаю,

string timeInput = Console.ReadLine(); 
if(timeInput.Length == 4) 
{ // if string = four 
    timeInput = timeInput.Insert(2, ":"); 
} 
string[] timeSplit = timeInput.Split(':'); 
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, ":"); 
}