Удалить с массива типа чар буквы и оставить только цифры - C#

Узнай цену своей работы

Формулировка задачи:

Ребята подскажите плз что делать, такая задача: Користувач вводить назву файлу на жорсткому диску. Програма знаходить добуток 1-го, 3-го та 5-го чисел з цього файлу і виводить результат на консоль. В самом текстовом файле находится такая информация: Allo123YYu984, должно вывести 1*3*8 = 24. Вот есть код, но он считает и буквы тоже.
Листинг программы
  1. try
  2. {
  3. StreamReader a = new StreamReader(@"D:\1.txt");
  4. string s = a.ReadToEnd();
  5. Console.WriteLine("{0}", s);
  6. int x = s.Length;
  7. int o=1;
  8. char[] array = s.ToCharArray();
  9. char[] mass = new char[x];
  10. char[] tr = new char[x];
  11. int j = 0, k;
  12. foreach (char c in array)
  13. {
  14. if (Char.IsNumber(c))
  15. {
  16. mass[j] = c;
  17. Console.Write("{0} ", mass[j]);
  18. }
  19. j++;
  20. }
  21. for (int i = 0; i < x; i++)
  22. {
  23. if ('0' <= mass[i] && mass[i] <= '9')
  24. tr[i] = mass[i];
  25. else
  26. mass[i] = tr[i] ;
  27. Console.Write("{0}", tr[i]);
  28. }
  29. Console.WriteLine();
  30. Console.WriteLine("{0}", o);
  31. Console.ReadKey();
  32. throw new Exception("Dont have 5 numeric");
  33. }
  34. catch(Exception thrown)
  35. {
  36. Console.WriteLine(thrown.Message);
  37. throw new Exception("Please input name on 5 numeric or more");
  38. }

Решение задачи: «Удалить с массива типа чар буквы и оставить только цифры»

textual
Листинг программы
  1. using System;
  2. using System.IO;
  3.  
  4. namespace CyberForum
  5. {
  6.     public class MultiplyFirstThreeNumbersFromFile
  7.     {
  8.         public static void Main(string[] args)
  9.         {
  10.             Console.Write("Введите путь к файлу: ");
  11.             string filePath = Console.ReadLine();
  12.            
  13.             if (File.Exists(filePath)) // если файл существует
  14.             {
  15.                 int index = 0;
  16.                 int[] numbers = new int[3]; // массив для хранения 1, 3 и 5й цифр
  17.                
  18.                 StreamReader reader = new StreamReader(filePath, true);
  19.                 while (!reader.EndOfStream)
  20.                 {
  21.                     string line = reader.ReadLine(); // читаем строку из файла
  22.                     for (int lineIdx = 0; lineIdx < line.Length; ++lineIdx)
  23.                     {
  24.                         char current = line[lineIdx];
  25.                         if (char.IsDigit(current)) // проверяем, является ли текущий символ цифрой
  26.                         {
  27.                             int value = (current - '0'); // если да - получаем его числовое значение
  28.  
  29.                             // и записываем в массив в зависимости от индекса цифры в файле
  30.                             switch (index)
  31.                             {
  32.                                 case 0: numbers[0] = value; break; // 1 цифра
  33.                                 case 2: numbers[1] = value; break; // 3 цифра
  34.                                 case 4: numbers[2] = value; break; // 5 цифра
  35.                                 default: break;
  36.                             }
  37.                             ++index;
  38.                         }
  39.                         // если дошли до 5й цифры - прерываем цикл
  40.                         if (index == 5) break;
  41.                     }
  42.                     // дошли до 5й цифры - прерываем цикл
  43.                     if (index == 5) break;
  44.                 }
  45.  
  46.                 // обязательно закрываем reader
  47.                 reader.Close();
  48.                 // ну а дальше понятно
  49.                 if (index == 5)
  50.                 {
  51.                     int mult = numbers[0] * numbers[1] * numbers[2];
  52.                     Console.WriteLine("Произведение 1, 3 и 5 цифр равно {0}", mult);
  53.                 }
  54.                 else Console.WriteLine("В файле менее пяти цифр.");
  55.             }
  56.             else Console.WriteLine("Файл по указанному пути не существует.");
  57.         }
  58.     }
  59. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы