#c_sharp
Есть тхт в котором есть строки одинаковой длинны то есть 3 бита в каждой из строк, и через пробел снова 3 бита и так 10 раз, как пример показал 2 столбца а таких 10 штук xxx xxx xxx xxx xxx xxx чтобы было понятнее как мне сделать в первом столбце.replace("x","новая буква"); и тоже самое сделать со втором столбцом первой буквой во всех строках первый знак кароче говоря? И сохранить изменения туда же
Ответы
Ответ 1
Можно вот так: var txt = "xxx xxx\r\nxxx xxx\r\nxxx xxx"; var lines = txt.Split(new string[] { "\r\n" }, StringSplitOptions.None); // заменить первую for (int i = 0; i < lines.Length; i++) { lines[i] = lines[i].Remove(0, 1).Insert(0, "y"); } // заменить первую в следующем слове for (int i = 0; i < lines.Length; i++) { lines[i] = lines[i].Remove(4, 1).Insert(4, "y"); } var result = string.Join("\r\n", lines); Принцип простой. Разбиваете файл по строкам, а дальше берёте первую строку и ищете нужную позицию искомого символа. Потом перебирая все строки удаляете старый символ и по этой позиции вставляете новый. Вот ещё пример на замену первого символа в каждом столбце каждой строки: var txt = "xxx xxx xxx\r\nxxx xxx xxx\r\nxxx xxx xxx"; var lines = txt.Split(new string[] { "\r\n" }, StringSplitOptions.None); for (int i = 0; i < lines.Length; i++) { var columns = lines[i].Split(' '); for (int j = 0; j < columns.Length; j++) { columns[j] = columns[j].Remove(0, 1).Insert(0, "y"); } lines[i] = string.Join(" ", columns); } var result = string.Join("\r\n", lines);Ответ 2
Если вопрос состоит в том, как заменить первый символ в каждой строке, воспользуйтесь методом Substring в цикле перебора строк. Пример кода нет смысла выкладывать, Вы должны сами научиться использовать этот простой метод. Update: private void Check() { var result = ""; var ch = 'a'; var list = new List() { "xxx xxx", "xxx xxx", "xxx xxx" }; foreach (var line in list) result += ReplaceFirstChar(line, ch) + "\r\n"; MessageBox.Show(result); } private string ReplaceFirstChar(string str, char ch) { var result = ""; foreach (var line in str.Split(' ')) result += ch + line.Substring(1, line.Length - 1) + ' '; return result.Trim(); } проверяйте.
Комментариев нет:
Отправить комментарий