Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
1

Получить массив результатов умножения на 5 цифровых слов в ListBox

29.10.2014, 15:35. Показов 2960. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот такая задача: . Получить массив результатов умножения на 5 цифровых слов в ListBox .
Я решила найти хотя бы первое цифровое слово

код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 private void button1_Click(object sender, EventArgs e)
        {
            int number;
            foreach (string s in textBox1.Text)
            {
             bool result = Int32.TryParse(s, out number);
             if (result)
               {
                        number = number * 5;
                        listBox1.Items.Add (Convert.ToChar(number));
                        break;
                    }
                }
            }
ошибка. Не знаю как быть, первый раз работаю со строками в С#

Ошибка 1 Преобразование типа "char" в "string" невозможно
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2014, 15:35
Ответы с готовыми решениями:

Найти массив сумм цифр цифровых слов
Есть программка, которая с текстового файла посимвольно считывает текст. Исключает знаки...

Получить ассоциативный массив из результатов запроса к БД MSSQL
Доброго всем дня! Возникла проблема с созданием ассоциативного массива, данные для которого...

По заданной строке получить массив слов, входящих в эту строку. Разделителями слов считаются пробелы
По заданной строке получить массив слов, входящих в эту строку. Разделителями слов считаются...

Если число цифровых элементов больше,чем алфавитных,то получить новый массив,сцепив попарно цифровые и числовые элементы символом "&"
В массиве А содержатся элементы с только цифровой или только алфавитной информацией.Длинна...

30
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 16:18 2
непонял, что значит "умножения на 5 цифровых слов"?

Добавлено через 1 минуту
хотя, попробуй заменить
C#
1
listBox1.Items.Add (Convert.ToChar(number));
на это
C#
1
listBox1.Items.Add (number.ToString());
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 16:20  [ТС] 3
Baky,
Цитата Сообщение от Baky Посмотреть сообщение
непонял, что значит "умножения на 5 цифровых слов"?
сама долго врубалась
в общем: мы пишем в едит например так: кровать 2 диван стол 7 тумба 8 шкаф
в лист бокс надо вывести: кровать 10 диван стол 35 тумба 40 шкаф
т.е. найти цифры и умножить их на 5
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 16:20 4
просек в чем косяк, дело в том что TextBox.Text содержит только одну строку.
Тебе нужно:
C#
1
foreach (Char s in textBox1.Text)
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 16:21  [ТС] 5
Baky, ошибку пишет на эту строку-то

C#
1
 foreach (string s in textBox1.Text)
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 16:22 6
тебе принципиально именно так сделать или могу предложить свой вариант?
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 16:23  [ТС] 7
Baky,
Цитата Сообщение от Baky Посмотреть сообщение
foreach (Char s in textBox1.Text)
заменила
теперь ругается на
C#
1
bool result = Int32.TryParse(s, out number);
Ошибка 1 Наиболее подходящий перегруженный метод для "int.TryParse(string, out int)" имеет несколько недопустимых аргументов
Ошибка 2 Аргумент "1": преобразование типа из "char" в "string" невозможно
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 16:24 8
замени
C#
1
2
3
4
5
6
7
8
9
10
            foreach (string s in textBox1.Text.Split(new char[] { ' ' }, StringSplitOptions.None))
            {
                bool result = Int32.TryParse(s, out number);
                if (result)
                {
                    number = number * 5;
                    listBox1.Items.Add(Convert.ToChar(number));
                    break;
                }
            }
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 16:24  [ТС] 9
Baky,
Цитата Сообщение от Baky Посмотреть сообщение
тебе принципиально именно так сделать или могу предложить свой вариант?
даже лучше если предложишь свой вариант нахождения цифр и умножения их на 5
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 16:24 10
думаю сроботоет
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 16:26  [ТС] 11
Baky,
Цитата Сообщение от Baky Посмотреть сообщение
замени
выдает в лист бокс какую-то крокозябру. например: $
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 16:27 12
Лучший ответ Сообщение было отмечено POVT как решение

Решение

а если так
C#
1
2
3
4
5
6
7
8
9
10
11
            foreach (string s in textBox1.Text.Split(new char[] { ' ' }, StringSplitOptions.None))
            {
                bool result = Int32.TryParse(s, out number);
                if (result)
                {
                    number = number * 5;
                    textBox.Text.Replace(s, number.ToString());
                    listBox1.Items.Add(number.ToString());
                    break;
                }
            }
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 16:29  [ТС] 13
Baky,
Ошибка 1 "System.Windows.Forms.TextBox" не содержит определения для "Split" и не был найден метод расширения "Split", принимающий тип "System.Windows.Forms.TextBox" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 16:29 14
исправил, скопируй еще раз
1
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 16:31  [ТС] 15
Baky,
Цитата Сообщение от Baky Посмотреть сообщение
исправил, скопируй еще раз
О заработало)) спасибо. Он нашел первое число и умножил на пять) а как сделать , чтобы он все цифры на 5 умножил?
0
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
29.10.2014, 16:47 16
C#
1
2
3
4
5
string str = @"кровать 2 диван стол 7 тумба 8 шкаф";
foreach (Match match in Regex.Matches(str, @"\d+"))
    str = Regex.Replace(str, match.Value, (5 * Int32.Parse(match.Value)).ToString());
Console.WriteLine(str);
Console.ReadKey();
Заменить сразу в Реплайсе не вышло.


Нашёл недочёт - с одинаковыми цифрами в разных местах проблема...
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
29.10.2014, 17:02 17
POVT, в принце и должно каждое найденное число умножить на 5. точно кроме первого не умножает?

Добавлено через 4 минуты
может у тебя разделители слов другие?
0
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
29.10.2014, 17:05 18
Вот:
C#
1
2
3
4
5
6
string str = @"кровать 5 диван стол 7 тумба 35 шкаф";
foreach (Match match in Regex.Matches(str, @" \d+ "))
    str = Regex.Replace(str, match.Value, (5 * Int32.Parse(match.Value)).ToString());
str = Regex.Replace(str, @"\d+", @" $0 ");
Console.WriteLine(str);
Console.ReadKey();
Избавился от проблемы с одинаковыми цифрами в разных числах.
1
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
29.10.2014, 17:35  [ТС] 19
Baky,
Цитата Сообщение от Baky Посмотреть сообщение
может у тебя разделители слов другие?
у меня пробелы

Добавлено через 1 минуту
BozKurt,
Цитата Сообщение от BozKurt Посмотреть сообщение
string str = @"кровать 5 диван стол 7 тумба 35 шкаф";
так у меня -то заранее неизвестная строка. Вводим все в textBox1

Добавлено через 44 секунды
Baky,
Цитата Сообщение от Baky Посмотреть сообщение
точно кроме первого не умножает?
точно
Миниатюры
Получить массив результатов умножения на 5 цифровых слов в ListBox  
0
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
29.10.2014, 17:38 20
Цитата Сообщение от POVT Посмотреть сообщение
так у меня -то заранее неизвестная строка. Вводим все в textBox1
Это проблема!? Сделай так:
C#
1
string str = textBox1.Text;
Ну и вывод тогда не в консоль делай, а во второй TexBox...
0
29.10.2014, 17:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2014, 17:38
Помогаю со студенческими работами здесь

Получить массив путем поэлементного логического умножения элементов столбца с максимальным элементом
Помогите решить. Заполнить два двумерных массива типа и размеров согласно заданию и заполнить их...

ListBox по нажатию цифровых комбинаций (1, 12, 325) происходит переход на пункт, начинающийся с этих чисел
ListBox. По нажатию цифровых комбинаций (1, 12, 325) происходит переход на пункт, начинающийся с...

Получить массив из слов
Необходимо разработать функцию, которая будет возвращать массив слов, содержащихся в сообщении ...

Получить из текста массив слов по разледителям
Помогите найти причину "мусора" в словах. Программа считывает текст из файла и разбивает его на...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru