Не логичное поведение string.StartsWith() или string.Trim() - C#
Формулировка задачи:
Нашел задачку, условие:
Необходимо написать программу, которая считает количество строк в файле содержищем код на языке С/С++/C# без учета комментариев и пустых строк.
Комментарии могут быть однострочные (//) и многострочные (/**/). Пустой строкой считается строка, которая не содержит ни одного символа, либо содержащая только пробельные символы (пробелы, символы табуляции).
Программа должна принимать один параметр - имя файла для обработки и возвращать количество строк кода.
Пример
Входной файл:
Результат:
4
При помощи гугла и МСДНа написал такой код:
Но есть проблема, программа видит строку " // main function" как ту, которую надо засчитывать как код, хотя в условии есть четкое условие "!line.StartsWith("/")". Если убрать пробелы перед " // main function", то прога её не считает, то, что мне и надо. Читаю на МСДН o string.Trim():
Вообщем непонятно(
/** * @author Sergey Yatsuk * @version $Id: Exp $ */ int main() { // main function return 0; }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ReadingFile { class Program { static void Main(string[] args) { int numberOfStringWithCode = 0; try { string[] lines = File.ReadAllLines("test.cs"); foreach (string line in lines) { line.Trim(); if (!line.StartsWith("/") && !line.StartsWith("/*") && !line.StartsWith("*")&& !(line.Length==0)) { numberOfStringWithCode++; Console.WriteLine("{0} : {1}", line, numberOfStringWithCode); } } } catch (Exception ex) { Console.WriteLine("File cannot be read!"); Console.WriteLine(ex.Message); } Console.WriteLine(numberOfStringWithCode); Console.ReadLine(); } } }
Удаляет все начальные и конечные знаки пробела из текущего объекта String.
Решение задачи: «Не логичное поведение string.StartsWith() или string.Trim()»
textual
Листинг программы
Console.WriteLine("hello"); Console.WriteLine("i like you");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д