Определяет самую длинную последовательность цифр в тексте (считать, что любое количество пробелов между двумя - C#
Формулировка задачи:
Нахожу самую длинную последовательность, но пробел прерывает последовательность. Нужно, что бы не прерывал
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
namespace Laba2._3
{
class var3
{
static void Main(string[] args)
{
try
{
// Создем экземпляр StreamReader для чтения из файла.
using (StreamReader sr = new StreamReader("123.txt"))
{
String line = sr.ReadToEnd();
Console.WriteLine(line);
//string numbers = @"[0-9]+";
//foreach (Match match in Regex.Matches(line, numbers))
// Console.WriteLine(match.Value);
string result = string.Empty;
string temp = string.Empty;
foreach (char n in line)
{
if (char.IsDigit(n))
{
temp += n;
}
else
{
if (temp.Length > result.Length)
{
result = temp;
}
temp = string.Empty;
}
}
Console.WriteLine(result);
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
}
}Решение задачи: «Определяет самую длинную последовательность цифр в тексте (считать, что любое количество пробелов между двумя»
textual
Листинг программы
int k = 0;
foreach (char n in line)
{
k++;
if (char.IsDigit(n))
{
temp += n;
if (temp.Length > result.Length || line.Length == k && temp.Length > result.Length)
result = temp;
}
else if (n == ' ')
continue;
else
temp = string.Empty;
}