Считать только строчки где есть определенное слово - C#
Формулировка задачи:
Нужно считать только строчки где есть слово vertex. Что бы считать, естественно нужно удалить пробелы перед словом vertex и между ним и цифрами. В тексте присутствуют пробелы, тут же их почему то не отображает
Текст:
solid ascii
facet normal 0.000000e+000 0.000000e+000 -1.000000e+000
outer loop
vertex -7.146446e+001 9.646446e+001 0.000000e+000
vertex -7.853554e+001 9.646446e+001 0.000000e+000
vertex -7.146446e+001 1.035355e+002 0.000000e+000
endloop
endfacet
Что не так делаю?
А как правильно убрать пробелы между:
vertex -7.146446e+001 9.646446e+001 0.000000e+000
var itemLine = str.Replace('.',',').Split(' '); if (itemLine[0].Trim().StartsWith("vertex", StringComparison.CurrentCultureIgnoreCase)) { ... }
Решил часть проблемы
, Trim() переставил и теперь считывает строчку vertex если убрать ручками пробелы между ним и цифрами.var itemLine = str.Replace('.',',').Trim().Split(' '); if (itemLine[0].StartsWith("vertex", StringComparison.CurrentCultureIgnoreCase))
Решение задачи: «Считать только строчки где есть определенное слово»
textual
Листинг программы
private string[] s = { "solid ascii", "facet normal 0.000000e+000 0.000000e+000 -1.000000e+000", "outer loop", "vertex -7.146446e+001 9.646446e+001 0.000000e+000", "vertex -7.853554e+001 9.646446e+001 0.000000e+000", "vertex -7.146446e+001 1.035355e+002 0.000000e+000", "endloop", "endfacet" }; public string[] DefineVertexStrings() { List<string> temp=new List<string>(); var b = s.Where(x => x.Contains("vertex")).Select(x => x); foreach (var t in b) { temp.Add(t); } return temp.ToArray(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д