Удалить с массива типа чар буквы и оставить только цифры - 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("Файл по указанному пути не существует."); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д