Удалить с массива типа чар буквы и оставить только цифры - C#
Формулировка задачи:
Ребята подскажите плз что делать, такая задача:
Користувач вводить назву файлу на жорсткому диску. Програма знаходить добуток 1-го, 3-го та 5-го чисел з цього файлу і виводить результат на консоль.
В самом текстовом файле находится такая информация: Allo123YYu984, должно вывести 1*3*8 = 24.
Вот есть код, но он считает и буквы тоже.
Листинг программы
- try
- {
- StreamReader a = new StreamReader(@"D:\1.txt");
- string s = a.ReadToEnd();
- Console.WriteLine("{0}", s);
- int x = s.Length;
- int o=1;
- char[] array = s.ToCharArray();
- char[] mass = new char[x];
- char[] tr = new char[x];
- int j = 0, k;
- foreach (char c in array)
- {
- if (Char.IsNumber(c))
- {
- mass[j] = c;
- Console.Write("{0} ", mass[j]);
- }
- j++;
- }
- for (int i = 0; i < x; i++)
- {
- if ('0' <= mass[i] && mass[i] <= '9')
- tr[i] = mass[i];
- else
- mass[i] = tr[i] ;
- Console.Write("{0}", tr[i]);
- }
- Console.WriteLine();
- Console.WriteLine("{0}", o);
- Console.ReadKey();
- throw new Exception("Dont have 5 numeric");
- }
- catch(Exception thrown)
- {
- Console.WriteLine(thrown.Message);
- throw new Exception("Please input name on 5 numeric or more");
- }
Решение задачи: «Удалить с массива типа чар буквы и оставить только цифры»
textual
Листинг программы
- using System;
- using System.IO;
- namespace CyberForum
- {
- public class MultiplyFirstThreeNumbersFromFile
- {
- public static void Main(string[] args)
- {
- Console.Write("Введите путь к файлу: ");
- string filePath = Console.ReadLine();
- if (File.Exists(filePath)) // если файл существует
- {
- int index = 0;
- int[] numbers = new int[3]; // массив для хранения 1, 3 и 5й цифр
- StreamReader reader = new StreamReader(filePath, true);
- while (!reader.EndOfStream)
- {
- string line = reader.ReadLine(); // читаем строку из файла
- for (int lineIdx = 0; lineIdx < line.Length; ++lineIdx)
- {
- char current = line[lineIdx];
- if (char.IsDigit(current)) // проверяем, является ли текущий символ цифрой
- {
- int value = (current - '0'); // если да - получаем его числовое значение
- // и записываем в массив в зависимости от индекса цифры в файле
- switch (index)
- {
- case 0: numbers[0] = value; break; // 1 цифра
- case 2: numbers[1] = value; break; // 3 цифра
- case 4: numbers[2] = value; break; // 5 цифра
- default: break;
- }
- ++index;
- }
- // если дошли до 5й цифры - прерываем цикл
- if (index == 5) break;
- }
- // дошли до 5й цифры - прерываем цикл
- if (index == 5) break;
- }
- // обязательно закрываем reader
- reader.Close();
- // ну а дальше понятно
- if (index == 5)
- {
- int mult = numbers[0] * numbers[1] * numbers[2];
- Console.WriteLine("Произведение 1, 3 и 5 цифр равно {0}", mult);
- }
- else Console.WriteLine("В файле менее пяти цифр.");
- }
- else Console.WriteLine("Файл по указанному пути не существует.");
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д