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

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


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

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

12   голосов , оценка 4.083 из 5
Похожие ответы