Как превратить массив символов в строку
Я застрял на 3 шаге. Может кто написать как это сделать? Можно объяснением или блоком кода.
Отслеживать
5,185 3 3 золотых знака 23 23 серебряных знака 48 48 бронзовых знаков
задан 4 дек 2015 в 0:11
313 1 1 золотой знак 2 2 серебряных знака 10 10 бронзовых знаков
Все слова строки нужно писать с большой?
4 дек 2015 в 0:13
Да. В том и дело что символы я смог сделать большими, но как их объеденить в 1 строку, не знаю.
4 дек 2015 в 0:16
7 ответов 7
Сортировка: Сброс на вариант по умолчанию
Делать можно по-разному, конечно, но в Java есть методы для работы со строками. По-хорошему, нужно делать так:
- Разбить строку по пробелам на слова и записать в массив
- Пройтись по массиву, заменяя первые символы на символы верхнего регистра и складывая в одну строку.
Никаких массивов char использовать не нужно. Вам понадобятся следующие методы String и Character :
- split(String regex) — делит строку на массив по какому-то правилу
- charAt(int index) — возвращает символ по указанному индексу
- toUpperCase(char ch) — переводит в верхний регистр
- substring(int beginIndex) — возвращает подстроку, начиная с указанного индекса
Если в строке есть несколько пробелов и их нужно учитывать при сборке текста обратно, то алгоритм будет такой:
Проходимся по строке:
- Если символ на данной позиции пробел, то запоминаем это событие
- Иначе, если символом на предыдущей позиции был пробел по Java (обычный пробел, табуляция и т.д.) либо начало строки, то заменяем его на символ верхнего регистра Вам понадобятся следующие методы StringBuilder и Character :
- length() — возвращает длину строки
- charAt(int index) — возвращает символ на заданной позиции
- isWhitespace(char ch) — проверяет, является ли символ пробелом по Java
- setCharAt(int index, char ch) — заменяет символ на заданной позиции на указанный
- toUpperCase(char ch) — переводит в верхний регистр
Отслеживать
ответ дан 4 дек 2015 в 0:23
5,185 3 3 золотых знака 23 23 серебряных знака 48 48 бронзовых знаков
substring() еще, скорее всего, пригодиться.
4 дек 2015 в 0:31
Благодарю, но я буквально с минуту назад нашел другое решение с помощью toCharArray(), а перевод осуществил с помощью Character.toString(b[i]). Конечно это было в цикле.
4 дек 2015 в 0:33
@IntFloat, верное замечание. Добавляю к ответу. Спасибо.
4 дек 2015 в 0:34
не понял как заносить в код
4 дек 2015 в 0:38
@Tayker, вы можете ответить на свой вопрос. Внизу есть синяя кнопочка.
4 дек 2015 в 0:38
Эта операция называется capitalize , причем независимо от языка. Не зная Java вовсе, я загуглил Java capitalize и первая(!) ссылка дала:
WordUtils.capitalize(string)
Собственно, в одну строку без сторонних библиотек:
str = str.replaceAll("((^|\\s+)(\\w))", "$2\\u\\$3");
Честно говоря, не знаю, работает ли \u в Java, но можно так:
str = str.replaceAll("((^|\\s+)(\\w))", "$2" + "$3".toUpperCase());
Регулярка ищет либо первый буквенный символ в строке, либо букву, которая стоит за произвольным числом пробелов и приводит ее в верхний регистр, сохраняя то, что было перед ней (то самое число пробелов, либо ничего). Java у меня нет, тестил на perl, там работает.
П.С. внешние круглые скобки, вероятно, не нужны.
К сожалению, предложенный мной способ без WordUtils не сработает в Java по нескольким причинам. Задачка заинтересовала, поэтому приведу ее решение на паре других языков.
1) perl. Круче всего. Одна строчка. Даже функцию писать нет никакого смысла. perl, ИМХО, круче всех языков работает со строками:
my $s = "simple string - example, а теперь Русский текст"; $s =~ s/(\b\w)/\u$1/g; print "$s\n";
2) python. (Решение в Java будет аналогичным, в 2.х Питоне работает только с английскими буквами, увы)
def capitalize(s): for g in re.finditer(r"^|\s+\w", s): s = s.replace(g.group(0), g.group(0).upper(), 1) return s if __name__ == "__main__": s = capitalize("my text solo\t\t\t\tstring\nmmm") print s
Отслеживать
ответ дан 4 дек 2015 в 4:53
7,461 13 13 серебряных знаков 31 31 бронзовый знак
Стоит упомянуть, что в этом решении требуется сторонняя библиотека org.apache.commons:commons-lang3 , которую следует добавить в зависимости проекта.
4 дек 2015 в 5:14
@pavlofff, спасибо, стоило конечно это отметить. Я больше к тому, что стоит знать стандартное название более-менее стандартной операции, и пользоваться гуглом.
4 дек 2015 в 5:21
BufferedReader reader = new BufferedReader(new InputStreamReader(System. in )); String s = reader.readLine(); char[] b = s.toCharArray(); if (b[0] != ' ') b[0] = Character.toUpperCase(b[0]); for (int i = 0; i < b.length - 1; i++) < if (b[i] == ' ' && b[i + 1] != ' ') < b[i + 1] = Character.toUpperCase(b[i + 1]); >> String result = ""; for (int i = 0; i
Отслеживать
5,185 3 3 золотых знака 23 23 серебряных знака 48 48 бронзовых знаков
ответ дан 4 дек 2015 в 0:41
313 1 1 золотой знак 2 2 серебряных знака 10 10 бронзовых знаков
И в правду. не задумывался над этим. Все из-за (b[i+1]) или как?
4 дек 2015 в 1:02
Я чуть-чуть поправил ваш код. Надеюсь, вы не против 🙂 Ответ может кому-то помочь в дальнейшем.
4 дек 2015 в 1:53
@LEQADA ну да :() так лучше.
4 дек 2015 в 2:44
Если отвечать прямо на вопрос, то нужно воспользоваться соответствующим конструктором:
String str = new String(b);
Отслеживать
ответ дан 6 дек 2015 в 11:33
2,171 15 15 серебряных знаков 21 21 бронзовый знак
String s = b.toString();
Также преобразуется обратно
char[] b = s.toCharArray();
Отслеживать
ответ дан 4 дек 2015 в 13:59
11 1 1 бронзовый знак
b.toString() и было использовано в коде
4 дек 2015 в 14:49
Как по мне это самый легкий способ
char[] c = ; String s = new String(с);
Отслеживать
1,086 7 7 серебряных знаков 12 12 бронзовых знаков
ответ дан 31 мар 2017 в 21:06
если нужно в строке текста каждый первый символ сделать из маленьких букв в большие то предлагаю такой вариант с пояснением: (может кому пригодится)
String str1 = "hot, java"; System.out.println( "рабочая строка : " + str1 ); String[] array = str1.split( " " ); // заполняем массив типа string словами System.out.println( "после сплита первое поле массива : " + array[0] ); System.out.println( "после сплита второе поле массива : " + array[1] ); System.out.println( "количество полей массива типа string : " + array.length ); System.out.println( "проверка первого символа нулевого поля : " + array[0].charAt( 0 ) ); System.out.println( "проверка первого символа первого поля : " + array[1].charAt( 0 ) ); for (int i = 0; i < array.length; i++) < char x = array[i].charAt( 0 ); // тогда присваиваем его переменной х типа char x = Character.toUpperCase( x ); // меняем на верхний регистр символ в переменной х array[i] = array[i].replace( array[i].charAt( 0 ), x ); // заменяем символ в нулевой позиции нужного поля на значение х типа char >> System.out.println( "после цикла первое поле массива :" + array[0] ); System.out.println( "после цикла второе поле массива :" + array[1] ); System.out.println( "теперь нужно билдером вернуть из массива строки в одну строку" ); String finalstring = String.join( " ", array ); // разделяем пробелами при импорте в строку, т.к. сплит разбил по пробелам System.out.println( "конечный результат :" + finalstring );
Как массив int записать в строку
Как массив int записать в строку.
Я создаю массив int после чего мне его нужно преобразовать в строку чтобы записать в файл.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Не могу нигде найти — как преобразовать массив int в строку, или сразу в число
Народ помогите пожалуйста. Число long 9876543210 было переведено в int namArr = .
Как перевести число int в массив int digits[]
String fileName1=123456; int n=fileName1.length(),i=0; int digits = new int; .
Записать строку в массив
Необходимо закинуть данную строку в массив. public class Main < public static void.

Записать строку из файла в массив
У меня есть массив int array , мне нужно считать из файла строку с элементами (1 8 6 45 9 0 3 8).
56 / 61 / 26
Регистрация: 10.04.2017
Сообщений: 211
String а+= Integer.toString(maas[i] );
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
Если устроит формат: [a1, a2, . . ., aN], то можете так сделать:
Arrays.toString(a);
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
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
public static void main(String args[]) { //такой способ int[] array = {1, 2, 3, 4, 5, 6}; String str = ""; for (int value : array) { str = String.format("%s%s", str, value); } System.out.println(str); //или такой способ int[] array2 = {1, 2, 3, 4, 5, 6}; StringBuilder sb = new StringBuilder(); for (int value : array2) { sb.append(value); } System.out.println(sb.toString()); //или вот этот способ int[] array3 = {1, 2, 3, 4, 5, 6}; String str2 = ""; for (int value : array2) { str2 = str2.concat(String.valueOf(value)); } System.out.println(str2); }
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 283
Sergey280995, это конечно не мое дело, если не захочешь отвечать, не надо. Но почему бы не записать в файл int’ы?
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Разделить строку на подстроки и записать в массив
Пожалуйста, подскажите, как написать цикл. Есть String nsString; , в который записано.
Как строковый массив из чисел преобразовать в двумерный массив int[][]
Ребят, помогите пожалуйста с задачей Имеется массив String a, в котором хранятся числа: .
Как записать в строку
Есть метод который считает количество букв в веденной строке и выводит сколько каких букв было в.
Как преобразовать массив int в строку с пробелами?

Я понимаю, что вопрос может быть глупым, легким для поиска, но если я его задал, значит гугл не решил проблему. Какое правило я нарушил?
Я бы посоветовал Вам прекратить любые социальные контакты, раз вы не можете адекватно реагировать и уважительно относится к людям

значит гугл не решил проблему
вы тупой, да? вы отметили решением ответ доступный в первых ссылках поисковика, причем любое другое решение оттуда рабочее
Какое правило я нарушил?
Я бы посоветовал Вам прекратить любые социальные контакты, раз вы не можете адекватно реагировать и уважительно относится к людям
я бы посоветовал вам не раздавать никому не нужные советы
ЗЫ по правилам русского языка неправильно ко мне обращаться с большой буквы («Вам»)

limb @LittleBob Автор вопроса
Jacen11, перед тем как задать вопрос, я перепробовал много вариантов «из первых строчек гугла» и половина там не работает совершенно, в итоге всё равно собрал свой метод.
И это правило я не нарушал
В отличие от вас, человек из решения не стал строить из себя клоуна и нормально помог, с комментариями.
Не считаю адекватным проявление необоснованной агрессии и неуважения к случайному человеку. Неадекватных необходимо изолировать

половина там не работает совершенно
а вот спросить почему «не работает» это уже было бы правильно
в итоге всё равно собрал свой метод.
В отличие от вас, человек из решения не стал строить из себя клоуна и нормально помог, с комментариями.
Не считаю адекватным проявление необоснованной агрессии и неуважения к случайному человеку. Неадекватных необходимо изолировать
Как преобразовать строку (String) в массив байтов (byte Array) на Java?

Ниже приведена простая программа для преобразования (конвертации) строки в массив байтов и наоборот — с массива байтов в строку.
package ua . com . prologistic ;
import java . util . Arrays ;
public class StringToByteArray <
public static void main ( String [ ] args ) <
String inputString = "prologistic.com.ua" ;
// преобразуем нашу строку в массив байт
byte [ ] byteArray = inputString . getBytes ( ) ;
System . out . println ( "Строку в массив байт : " + Arrays . toString ( byteArray ) ) ;
// конвертируем байты в строку
String string = new String ( byteArray ) ;
System . out . println ( "байты в строку : " + string ) ;
// давайте посмотрим, равны ли наши строки
System . out . println ( "inputString == string : " + ( inputString == string ) ) ;
System . out . println ( "inputString.equals(string) : " + ( inputString . equals ( string ) ) ) ;
Метод класса String getBytes() возвращает байтовый массив из строки. Строковый конструктор можно использовать для создания строки из массива байтов.
Вот и результат выполнения программы:
