Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/56: Рейтинг темы: голосов - 56, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 11.01.2014
Сообщений: 40

Разделить строку на N символов

05.06.2014, 16:00. Показов 11478. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья помогите плиз , есть строка к примеру 1000 символов ее надо разделить по 64 символа + хвост .

Пример :

Выход должен быть таким .

dfglhdgihdioguhaguiophaerighauierghuiaer hg88590toghaseioghaerhgaeir
dfglhdgihdioguhaguiophaerighauierghuiaer hg88590toghaseioghaerhgaeir
dfglhdgihdioguhaguiophaerighauierghuiaer hg88590toghaseioghaerhgaeir
dfglhdgihdioguhaguiophaerighauierghuiaer hg88590toghaseioghaerhgaeir
dfglhdgihdioguhaguiophaerighauierghuiaer hg88590toghaseioghaerhgaeir
dfglhdgihdiogu
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.06.2014, 16:00
Ответы с готовыми решениями:

Разделить строку на подстроки по набору символов
Здравствуйте! Вопрос в теме. Как разбить строку на подстроки сначала по набору символов "<br>". Потом эти строки разбить на...

Разделить строку после некоторого кол-ва символов
Дана строка типа: мамасестра Как между мама и сестра вставить пробел, если известно кол-во символов первого слова..(в нашем случае 4)

Как разделить строку на массив строк по 16 символов?
foreach (string str in s) { for (int i = 0; i < str.Length; i++) { Console.WriteLine(str); } ...

6
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
05.06.2014, 16:07
Airdog, строка это массив
C#
1
2
3
4
5
6
7
str = "ddsshkdhjkhdsks";
 
for(int i=0; i<1000; i++)
{
// твори что хочешь 
str[i]
}
1
162 / 154 / 73
Регистрация: 03.03.2014
Сообщений: 368
05.06.2014, 16:09
Airdog, Что означает разбить у вас? Вставить пробел или разбить на отдельные строки?
0
0 / 0 / 1
Регистрация: 11.01.2014
Сообщений: 40
05.06.2014, 16:15  [ТС]
Сорри не уточнил , нужно разбить на отдельные строки.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
05.06.2014, 16:57
C#
1
2
3
4
5
6
7
8
9
10
11
12
static class StringExtensions
{
    public static IEnumerable<string> Split(this string s, int chunkSize)
    {
        int chunkCount = s.Length / chunkSize;
        for (int i = 0; i < chunkCount; i++)
            yield return s.Substring(i * chunkSize, chunkSize);
 
        if (chunkSize * chunkCount < s.Length)
            yield return s.Substring(chunkSize * chunkCount);
    }
}
C#
1
2
string str = "dfglhdgihdioguhaguiophaerighauierghuiaerhg88590toghaseioghae rhgaeirdfglhdgihdioguhaguiophaerighauierghuiaerhg88590toghaseioghae rhgaeirdfglhdgihdioguhaguiophaerighauierghuiaerhg88590toghaseioghae rhgaeirdfglhdgihdioguhaguiophaerighauierghuiaerhg88590toghaseioghae rhgaeirdfglhdgihdioguhaguiophaerighauierghuiaerhg88590toghaseioghae rhgaeirdfglhdgihdiogu";
string[] chunks = str.Split(64).ToArray();
1
162 / 154 / 73
Регистрация: 03.03.2014
Сообщений: 368
05.06.2014, 17:13
Лучший ответ Сообщение было отмечено Airdog как решение

Решение

Airdog, 3 варианта.
1 вариант "Го*нокодный(все варианты такие ), но через StringBuilder"
2 вариант простой как 2 через substring
3 вариант через цикл for в верху.
Еще можно через Linq сделать, но это в другой раз
Кликните здесь для просмотра всего текста
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace String64
{
    class Program
    {
        private static string SubString(string s, int start, int size, out int newStart, out bool isEnd)
        {
            StringBuilder strB = new StringBuilder();
            strB.Capacity = size;
            
            int end = (start + size  > s.Length ) ? s.Length : start + size;
            for (int i = start; i < end; i++)
            {
                strB.Append(s[i]);
            }
            
            isEnd = (end == s.Length);
            newStart = end;
            return strB.ToString();
        }
 
        public static List<string> DivideOnSubstring(string s, int stepSize)
        {
            List<string> ans = new List<string>();
            
            int pos = 0;
            int start = 0;
            bool isEnd = false;
            do
            {
                ans.Add(SubString(s,start,stepSize, out pos, out isEnd));
                start = pos;
            } while (isEnd);
            ans.Add(SubString(s,start,stepSize, out pos, out isEnd));
            return ans;
        }
 
        public static List<string> DivideOnSubstring2(string s, int stepSize)
        {
            List<string> ans = new List<string>();
            int start = 0;
            bool flag = false;
            do
            {
                ans.Add(s.Substring(start,stepSize));
                start += stepSize;
                if (stepSize > s.Length-start) flag = true;
            } while (!flag);
            ans.Add(s.Substring(start,s.Length-start));
            return ans;
        }
 
        static void Main(string[] args)
        {
            string s = "1234567890123456789012345678901234567890123456789012345678901234567890";
            List<string> someStrings = DivideOnSubstring(s, 64);
            foreach (var S in someStrings)
            {
                Console.WriteLine(S);
            }
            Console.WriteLine();
            List<string> otherStrings = DivideOnSubstring2(s, 64);
            foreach (var S in otherStrings)
            {
                Console.WriteLine(S);
            }
            Console.ReadLine();
        }
    }
}
1
4 / 4 / 0
Регистрация: 06.03.2018
Сообщений: 225
13.12.2022, 10:08
Цитата Сообщение от Not_Jon_Skeet Посмотреть сообщение
do
            {
                ans.Add(SubString(s,start,stepSize, out pos, out isEnd));
                start = pos;
            } while (isEnd);
тут опечатка, после первой итерации выйдет из цикла
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2022, 10:08
Помогаю со студенческими работами здесь

Дана строка символов, надо разделить ее на группы по n символов
Дана строка символов, разделить ее на группы по N символов. N вводится с клавиатуры.Переставить символы в каждой группе в обратном...

Дана строка символов, разделить ее на группы по N символов
Дана строка символов, разделить ее на группы по N символов. N вводится с клавиатуры.Переставить символы в каждой группе в обратном...

Разделить строку после 30 символов и пробела
Мучаюсь весь день, мне нужно вводимую строку разбить на две, если она превысит 50 символов, но будет красивее, если 30 символов и до...

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

В строке более 255 символов. Как правильно разделить эту строку и перенести на другую, не нарушая конструкции кода?
SELECT Prihod_materialov., Materiali.Name_materiala, Postavhiki.Name_postavhica, Prihod_materialov.ID_materiala,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru