Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Mozzgg
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 50
#1

Вывести на экран цифры, содержащиеся в строке

08.10.2015, 21:54. Просмотров 1312. Ответов 9
Метки нет (Все метки)

Дана строка символов. Вывести на экран цифры, содержащиеся в строке.

есть наработка

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Лаба5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int Index = 0;
            string name = (string)listBox1.Items[Index];//ввод строки любой
 
            string name1 = "";
            string name0 = "";
            string name2 = "";
            int len = name.Length;
            int i = 0;
            while (i < len)
            {
                if ((name[i] >= '0' && name[i] <= '9') || (name[i] == '-') || (name[i] == '+'))
                {
                  
                    name0 += name[i];
                }
 
            }
            label2.Text = name1.ToString();//вывод строки содержащий цифры
        }
        private void button2_Click(object sender, EventArgs e)//выход
        {
            Application.Exit();
        }
    }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2015, 21:54
Ответы с готовыми решениями:

Строка: Вывести на экран цифры, содержащиеся в строке
using System; using System.Collections.Generic; using System.ComponentModel;...

Как вывести все цифры, содержащиеся в строке?
У меня задание такое - дана строка символов. Вывести на экран цифры,...

Вывести все четные цифры, содержащиеся в слове наибольшей длины, и вывести число повторений каждой этой цифры
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов)....

Вывести на экран все цифры, встречающиеся в строке
С помощью массивов. Вывести на экранвсе цифры ,встречающиесяв...

Вывести символы содержащие в строке s и p, но не содержащиеся в строке r
использовать тип данных множества. Вывести символы содержащие в строке s и p,но...

9
LonerZzz
тыжПрограммист
317 / 132 / 43
Регистрация: 21.04.2014
Сообщений: 586
08.10.2015, 22:02 #2
Лучший ответ Сообщение было отмечено Mozzgg как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "JKJjl8897mjkl^&&%$^kjlk^$%^556";
            foreach(char ch in str)
                if (Char.IsDigit(ch))
                    Console.Write(ch + " ");
            Console.WriteLine("\n");
            Console.ReadKey();
        }
    }
}
1
Woldemar89
TheGreatCornholio
1164 / 652 / 271
Регистрация: 30.07.2015
Сообщений: 2,259
Завершенные тесты: 1
08.10.2015, 23:17 #3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {       
            
            Console.WriteLine(Console.ReadLine().ToCharArray().Where(x => char.IsDigit(x)).ToArray());
            
            Console.ReadKey();
 
        }
    }
}
0
LonerZzz
тыжПрограммист
317 / 132 / 43
Регистрация: 21.04.2014
Сообщений: 586
08.10.2015, 23:36 #4
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Console.WriteLine(Console.ReadLine().ToCharArray().Where(x => char.IsDigit(x)).ToArray());
всегда было интересно..с точки зрения производительности на больших объёмах данных..данный код имеет смысл использовать?
0
Woldemar89
TheGreatCornholio
1164 / 652 / 271
Регистрация: 30.07.2015
Сообщений: 2,259
Завершенные тесты: 1
09.10.2015, 00:04 #5
Цитата Сообщение от LonerZzz Посмотреть сообщение
на больших объёмах данных..данный код имеет смысл использовать?
Всему свое место, когда как, насчет данного примера, - думаю, имеет.

И в принципе, такие шняги параллелятся при желании.

PLINQ и работа с PFX

Добавлено через 22 минуты
C#
1
2
3
4
5
6
            //если IEnumerable к массиву не приводить, вся последовательность сразу не будет вычисляться, 
            //а будет браться по мере надобности, еще и распараллелить можно, указав, что порядок важен (убрать AsOrdered если не важен)
            IEnumerable<char> seq = bigStr.ToCharArray().AsParallel().AsOrdered().Where(x => char.IsDigit(x)); //так начнет выводить сразу по мере надобности
            IEnumerable<char> seq = bigStr.ToCharArray().AsParallel().AsOrdered().Where(x => char.IsDigit(x)).ToArray(); //а так задумается, пока не переварит все
            
            foreach (var c in seq) Console.Write(c);
0
LonerZzz
тыжПрограммист
317 / 132 / 43
Регистрация: 21.04.2014
Сообщений: 586
09.10.2015, 00:13 #6
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Всему свое место, когда как, насчет данного примера, - думаю, имеет.
Не знаю. Правильно ли я проверял или нет. Но используя данный метод
C#
1
2
3
4
            Stopwatch watch = new Stopwatch();
            watch.Start();
//Код
            watch.Stop();
Получилось что ваш метод на фиксированной строке "JKJjl8897mjkl^&&%$^kjlk^$%^556"
работает в среднем в 6 раз медленнее, чем решение в лоб. Естественно при использовании параллельности разрыв будет меньше или вообще его не будет..Это тоже можно проверить.
Пока что я могу сделать вывод..что решение красивое..но не производительное.
0
Woldemar89
TheGreatCornholio
1164 / 652 / 271
Регистрация: 30.07.2015
Сообщений: 2,259
Завершенные тесты: 1
09.10.2015, 10:18 #7
Цитата Сообщение от LonerZzz Посмотреть сообщение
что решение красивое..но не производительное.
Таки, до меня дошло, почему-то не сразу, согласен, -
for просто обращается к строке, а linq тратит время и ресурсы на формирование ienumerable и массивов.
Действительно, в данном случае - лучше в лоб и plinq, наверняка, никогда не догонит for.

Другое дело, возможно, если бы мы символы получали извне как ienumerable, а не как фиксированную строку,
но по заданию была именно она.
0
RustikSRR
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 3
13.01.2016, 19:36 #8
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Лаба_6._2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int index = listBox1.SelectedIndex;
            string str = (string)listBox1.Items[index];
            int len = str.Length;
            int count = 0;
            int i = 0;
            while (i < len)
            {
                if (str[i] >= '0' && str[i] <= '9')
                    count++;
                i++;
 
                    label1.Text = "Количество пробелов =" + count.ToString();
            }
        }
    }
}
0
Kontemir
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 11
13.01.2016, 22:47 #9
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "Раз. Два. 1213ы";
            string pattern = @"\d";
            foreach (Match s in Regex.Matches(str, pattern))
                Console.Write(s); //1213
            Console.ReadKey();
        }
    }
}
0
insite2012
Модератор
Эксперт .NET
4849 / 3804 / 1094
Регистрация: 12.10.2013
Сообщений: 11,096
Записей в блоге: 2
13.01.2016, 23:25 #10
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Действительно, в данном случае - лучше в лоб и plinq, наверняка, никогда не догонит for.
Параллельность работает хитро. CLR сама делает вывод (если принудительно это не отключить), следует ли параллелить запрос (будет ли выигрыш) или нет. Если по мнению CLR выигрыша не будет, параллельность не работает.
0
13.01.2016, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2016, 23:25

Отыскать и скопировать цифры, содержащиеся в самой нижней строке текстового файла, в другой текстовый файл
Кто может, помогите пожалуйста решить задачу! Есть файл lom.txt в нем...

Вывести все четные цифры, содержащиеся в слове наибольшей длины
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов)....

Вывести все четные цифры, содержащиеся в слове наибольшей длины
1.Как сделать так, чтобы при выводе информации о количестве повторений каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru