Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
7 / 9 / 4
Регистрация: 25.02.2017
Сообщений: 139

Как мне перевести массив char, в котором хранятся через пробел слова, в массив string?

17.09.2017, 01:03. Показов 5202. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть у меня одномерный массив char, в котором хранятся через пробел слова, как мне перевести этот массив в массив string?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2017, 01:03
Ответы с готовыми решениями:

Перевести массив char в переменную string
Помогите перевести массив char в переменную string

Как перевести массив int в массив char
Как перевести массив int в массив char нужна помощь

есть массив char. есть строка string. как присвоить значению string-a значение char-a?
есть массив char. есть строка string. как присвоить значению string-a значение char-a?

10
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
17.09.2017, 06:53
Лучший ответ Сообщение было отмечено Крок как решение

Решение

Java
1
String[] words = new String(chars).split(" ");
1
7 / 9 / 4
Регистрация: 25.02.2017
Сообщений: 139
17.09.2017, 11:04  [ТС]
Но у меня пробелы всё равно записываются в массив

Добавлено через 12 минут
Хотя нет, всё нормально
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 8
26.08.2018, 08:31
Этот вариант отлично работает когда слова разделены пробелом, а как быть если разделителями являются несколько символов: пробел, знак табуляции или любой другой символ при необходимости, например "//"?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.08.2018, 08:49
Цитата Сообщение от St321 Посмотреть сообщение
например
Java
1
2
3
String s = "aaa.aaa,aaa;aaa\taaa aaa-aaa\\aaa";
String[]arr = s.split("\\W");
System.out.println(Arrays.toString(arr));
Bash
1
[aaa, aaa, aaa, aaa, aaa, aaa, aaa, aaa]
1
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,483
26.08.2018, 09:17
Крок, ты бы всю задачу привел, т.к. я уверен, есть много красивых решений))
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 8
27.08.2018, 08:51
Не совсем так...
У меня имеется текст в виде массива char[]:
"Текст из 100500 символов.
Специальные знаки: ~!@#$%^&*()_-+="';:|\/][}{><№".
Русский алфавит: АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩИЪЙЬЭЮЯ.
Текст из 100500 символов.
Специальные знаки: ~!@#$%^&*()_-+="';:|\/][}{><№".
Русский алфавит: АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩИЪЙЬЭЮЯ.
Конец."

в нем имеются разделители пробелы и знаки табуляции.
После преобразования в массив строк String[] должен получится тот же самый текст, но слова разделенные не пробелом (использовал метод .split(" ")) определяются как одно слово. Следовательно подсчет слов работает не правильно..

Я предполагаю, что каким то образом необходимо задать массив символов разделителей. Но в данном случае метод split() работает только со строками.
Java
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
import java.io.*; 
import java.util.Arrays; 
 
public class ReadWrite{
    public static void main (String[]args)throws IOException{
        String filePath="C:\\Users\\ST\\Documents\\Workspace\\ReadWriteTxtFile\\src\\1.txt"; //Создал переменную для указания пути к файлу. Необходимо использовать "\\" для экранирования символа "\" в регулярных выражениях 
        char[] symbolBuffer=ReadTxtFile.input(filePath);
        /* System.out.println("Символы в буфере: ");
        System.out.println("----------------------Начало------------------------------");
        System.out.println(symbolBuffer);
        System.out.println("----------------------Конец------------------------------"); */
        /* Примечание: в данном случае массив символов выводится как обычная переменная через метод println */
        //преобраузем массив символов в строковый масив 
        String separators=" ";
        String[] text=new String(symbolBuffer).split(separators);//конструкция для преобразования массива символов в масив строк.
        System.out.println("Текст после преобразования в строковый массив: ");
        System.out.println("----------------------Начало------------------------------");
        /* Примечание: массивы данных отличные от char выводятся в консоль при помощи println в цикле */
        for (int i=0;i<text.length;i++) {
        System.out.print(text[i]+"/");}
        System.out.println();
        System.out.println("----------------------Конец------------------------------");
        System.out.println("----------------------Статистика-------------------------");
        System.out.println("Число знаков в тексте "+symbolBuffer.length);
        System.out.println("Число слов в тексте "+text.length);
        
    }
}
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,483
27.08.2018, 09:16
Цитата Сообщение от St321 Посмотреть сообщение
тот же самый текст, но слова разделенные не пробелом
а чем?
задача посчитать количество слов?
Даже в твоей реализации перебирая массив symbolBuffer посимвольно, можешь делать вообще, что хочешь!
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 8
27.08.2018, 09:30
Цитата Сообщение от Aviz__ Посмотреть сообщение
а чем?
В данном случае разделены пробелами и табуляцией. В перспективе предполагается что слова могут быть разделены чем угодно %, *,# и так далее в любых комбинациях.
Цитата Сообщение от Aviz__ Посмотреть сообщение
задача посчитать количество слов?
На данном этапе только слова. Далее предполагается поиск и замена слов. В зависимости от задачи я могу использовать
как массив символов, так и строк.

Цитата Сообщение от Aviz__ Посмотреть сообщение
Даже в твоей реализации перебирая массив symbolBuffer посимвольно, можешь делать вообще, что хочешь!
Спорить не буду, мои начальных знаний хватило что-бы сделать вывод: "Со строками в данном случае удобнее".
А вообще хотелось сделать универсальный код который можно было бы применить в будущих задачах.
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,483
27.08.2018, 09:48
Цитата Сообщение от St321 Посмотреть сообщение
могут быть разделены чем угодно %, *,# и так далее
что угодно можно чистить регулярками)) вот потренируйся http://www.rubular.com/
1
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 8
27.08.2018, 10:17
О! Круто, спасибо! Как раз думал как мне применить регулярные выражения в дальнейшем)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2018, 10:17
Помогаю со студенческими работами здесь

Как перевести массив char[] в char*
Не знаю как перевести массив char в переменную char*

Как конвертировать string в массив char
Как конвертировать string в массив char

Как QByteArray перевести в массив char?
Вот в Qt есть контейнер QByteArray, он содержит байты, а тип данных QByte есть, если нет какой его эквивалент в Qt означающий просто...

Как двумерный массив char заменить на string?
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { char Str = { &quot;word&quot;, ...

Как преобразовать переменную string в массив char[]?
Есть переменная string и массив char как записать переменную типа string в такой массив ? String X=&quot;test&quot;; char Mass; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru