Следующая простая программа найдет последнюю букву в строке, которую пользователь вводит, а затем удаляет все после этой точки. Итак, если человек вводит один string....
все после удаления g
. У меня есть следующий как маленькая программа:Удалить все символы после последнего письма
class Program
{
static void Main(string[] args)
{
Console.Write("Enter in the value of the string: ");
List<char> charList = Console.ReadLine().Trim().ToList();
int x = charList.LastIndexOf(charList.Last(char.IsLetter)) ;
Console.WriteLine("this is the last letter {0}", x);
Console.WriteLine("This is the length of the string {0}", charList.Count);
Console.WriteLine("We should have the last {0} characters removed", charList.Count - x);
for (int i = x; i < charList.Count; i++)
{
charList.Remove(charList[i]);
}
foreach (char c in charList)
{
Console.Write(c);
}
Console.ReadLine();
}
}
Я попытался многочисленные вариации этого и ни один из них не получить его именно писать. Эта конкретная программа со входом string....
выход программы strin..
Так что как-то он уходит от того, что он должен отнимать, и на самом деле убирает письма, которых это не должно. Может ли кто-нибудь указать, почему это происходит? Желаемый результат снова должен быть string
.
Почему бы просто не использовать 'input.Substring (0, x + 1)'? –
@Grant Thomas: Потому что x может быть -1, если он не существует и все вычеркнуто, возможно, это намерение, это не совсем понятно из «spec». –
@MichelKeijzers Это не имеет значения. Дело в том, что весь цикл является фарсом - валидация значения тривиальна. –