Member 12693375 Ответов: 6

Как заменить числовое значение в C#?


Мой код таков:
строковый ввод = " 8,16,9,18,19";
строка output = input.Заменить("8","");

Я хочу, чтобы результат был таким:

выход= " 16,9,18,19";

Любая помощь будет оценена по достоинству и, пожалуйста, не используйте метод или функцию Regex

Спасибо

Что я уже пробовал:

Я Пытался
строковый ввод = " 8,16,9,18,19";
строка output = input.Заменить("8","");

Но мой выход приходит вот так:
выход= " 16,9,1,19";

6 Ответов

Рейтинг:
2

OriginalGriff

Строка.Замена изменяет все совпадающие значения, так что ваш "18" совпадает так же хорошо, как и тот, который вы хотите.
Если вы всегда хотите, чтобы удалить первый, а затем использовать подстроку при помощи indexOf:

string input = "8,16,9,18,19";
string output = input.Substring(input.IndexOf(',') + 1);


Member 12693375

Неправильный ответ Сэр вы можете проверить это практически
строка input1 = " 8,16,9,18,19";
строки выход1 = вход1.Подстрока(вход1.IndexOf (',') + 2);

Это дает мне такой вывод: "6,9,18,19";

OriginalGriff

Почему вы поставили "+ 2", Когда я поставил" + 1"?

Рейтинг:
2

F-ES Sitecore

string input = "8,16,9,18,19";

input = string.Join(",", input.Split(new[] { ',' }).Select(i => i.Trim()).Where(i => i != "8"));


Вышеизложенное также допускает пробелы в строке, например "8, 16, 9, ...". Если вы можете гарантировать отсутствие пробелов вы можете опустить обрезку

string input = "8,16,9,18,19";

input = string.Join(",", input.Split(new[] { ',' }).Where(i => i != "8"));


Рейтинг:
1

Zahid Mughal

Воспользуйся

string out1= obj.Substring(2);

всегда удалить, начиная с индекса. И если вы хотите удалить из любого места строку, вам нужен общий метод для построения.


Рейтинг:
0

Vijayavel Nadar

A regex is the easiest approach:


string input = "test, and test but not testing.  But yes to test";
string pattern = @"\btest\b";
string replace = "text";
string result = Regex.Replace(input, pattern, replace);
Console.WriteLine(result);


The important part of the pattern is the \b metacharacter, which matches on word boundaries. If you need it to be case-insensitive use RegexOptions.IgnoreCase:


Regex.Replace(input, pattern, replace, RegexOptions.IgnoreCase);


Рейтинг:
0

Karthik_Mahalingam

string input = "8,16,9,18,19";
           string[] items = input.Split(',');
           string replace = "8";
           List<string> lst = new List<string>();
           foreach (string item in items)
               if (item != replace)
                   lst.Add(item);
           string output = string.Join(",", lst);


           // using linq
           string output1 = string.Join(",", input.Split(',').Where(k => k != replace));


Рейтинг:
0

Patrice T

Цитата:
Как заменить числовое значение в C#?

Вы не работаете с числовым значением, это строка.

Ваш код удаляет все символы ' 8 ' в строке.
Самый простой способ получить выходные данные - это получить подстроку, начинающуюся с символа 2.
string input = "8,16,9,18,19";
string output = input.Substring(2);


Возможны и другие подходы, включая регулярное выражение, как вы можете видеть на других решениях. Но для этого нам нужны ваши точные критерии.