Top-office11.ru

IT и мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java строку в массив char

Java строку в массив char

Java Char Array

When we are dealing with a handful of data of the same type, we can use a different variable for each. But if we are working with arbitrarily more numbers of data of same type, array can be a good choice because it is a simple data structure to work with. List or Set is also a good choice, but arrays is much simpler to manipulate and work with. We explore below how do we work with Java Char Array. We will check different common scenario we encounter when working with char arrays.

Java Char Array Declaration

Declaring a variable to be a char array is straightforward and simple in Java. We can use the square brackets to do this. For example:

The square brackets is placed right after the word char and before the variable name. Arbitrarily, we can also put the square brackets at the end of the variable name like shown below.
Both ways are perfectly fine way of declaring a Java Char Array.

Java Char Array Declaration With Instance And Initial Size

When we work with arrays, we typically assign an instance right away with a default size. For example:
This declares a Java Char Array and assign an instance with size 5. Each item of the char array, being of primitive type, contains the char equivalent of the byte value 0. We can also add code to assign values after our declaration, for example:

Java Char Array Declaration With Instance And Values

Sometimes we already know beforehand what is the initial contents of our array. For this case, we can declare our Java Char Array variable and assign an instance with values already. Sample code is shown below:
This declares a Java Char Array with instance of size 5. The first element is a, the second element is z, the third element is c, the fourth is m, and the last one is x.

Java Char Array Declaration Initialize After Declaration

For the scenario where we don’t know beforehand the size and contents of our array, but we want to declare it anyways. And then we will know at later point what is the initial content, we can initialize the contents of an array later. Below is an example:
The three dots just means there might be some code in between the two lines, meaning something happens before we could initialize our Java Char Array. Of course the code below may also work:

Java Char Array Loop Values

A common scenario we encounter is we sometimes need to loop through and visit each value in our array. We can use the Java 5 for loop for this case as shown below:
That will output like below:
If we do not like this shortcut way of loop, we can do a longer version using below:
Which will result with the same output.

Java Char Array Size or Length

This was actually shown in previous example, but below is a sample way if we want to know the length of an existing char array.

This will output 5 as this is the number of items in the array.

Читать еще:  Произошла ошибка при вводе кода 2

Java Char Array Sorting

Another common use case when working with arrays is if we want to sort the elements. This is easy to do as Java provides a utility out of the box. We can use Arrays.sort() for this as shown below:

The output is the contents of the array in sorted order.
If we want to be more adventurous, we can just write our own sorting implementation.
The code above will sort and output the expected ordered result.

Java Char Array To List Conversion

Sometimes when array is not enough, we may want to convert our Java Char Array to a List. Below is a way to do that:

As shown above, we first need to convert char[] to Character[]. This is because we can’t create a List of char as Collections api requires Object and not primitives. For that we used apache common’s ArrayUtils.
And then we converted it to List of Character.

Java строку в массив char

Для соединения строк можно использовать операцию сложения («+»):

При этом если в операции сложения строк используется нестроковый объект, например, число, то этот объект преобразуется к строке:

Фактически же при сложении строк с нестроковыми объектами будет вызываться метод valueOf() класса String. Данный метод имеет множество перегрузок и преобразует практически все типы данных к строке. Для преобразования объектов различных классов метод valueOf вызывает метод toString() этих классов.

Другой способ объединения строк представляет метод concat() :

Метод concat() принимает строку, с которой надо объединить вызывающую строку, и возвращает соединенную строку.

Еще один метод объединения — метод join() позволяет объединить строки с учетом разделителя. Например, выше две строки сливались в одно слово «HelloJava», но в идеале мы бы хотели, чтобы две подстроки были разделены пробелом. И для этого используем метод join() :

Метод join является статическим. Первым параметром идет разделитель, которым будут разделяться подстроки в общей строке, а все последующие параметры передают через запятую произвольный набор объединяемых подстрок — в данном случае две строки, хотя их может быть и больше

Извлечение символов и подстрок

Для извлечения символов по индексу в классе String определен метод char charAt(int index) . Он принимает индекс, по которому надо получить символов, и возвращает извлеченный символ:

Как и в массивах индексация начинается с нуля.

Если надо извлечь сразу группу символов или подстроку, то можно использовать метод getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) . Он принимает следующие параметры:

srcBegin : индекс в строке, с которого начинается извлечение символов

srcEnd : индекс в строке, до которого идет извлечение символов

dst : массив символов, в который будут извлекаться символы

dstBegin : индекс в массиве dst, с которого надо добавлять извлеченные из строки символы

Сравнение строк

Для сравнения строк используются методы equals() (с учетом регистра) и equalsIgnoreCase() (без учета регистра). Оба метода в качестве параметра принимают строку, с которой надо сравнить:

В отличие от сравнения числовых и других данных примитивных типов для строк не применяется знак равенства ==. Вместо него надо использовать метод equals() .

Еще один специальный метод regionMatches() сравнивает отдельные подстроки в рамках двух строк. Он имеет следующие формы:

Метод принимает следующие параметры:

ignoreCase : надо ли игнорировать регистр символов при сравнении. Если значение true , регистр игнорируется

Читать еще:  Методы math java

toffset : начальный индекс в вызывающей строке, с которого начнется сравнение

other : строка, с которой сравнивается вызывающая

oofset : начальный индекс в сравниваемой строке, с которого начнется сравнение

len : количество сравниваемых символов в обеих строках

В данном случае метод сравнивает 3 символа с 6-го индекса первой строки («wor») и 3 символа со 2-го индекса второй строки («wor»). Так как эти подстроки одинаковы, то возвращается true .

И еще одна пара методов int compareTo(String str) и int compareToIgnoreCase(String str) также позволяют сравнить две строки, но при этом они также позволяют узнать больше ли одна строка, чем другая или нет. Если возвращаемое значение больше 0, то первая строка больше второй, если меньше нуля, то, наоборот, вторая больше первой. Если строки равны, то возвращается 0.

Для определения больше или меньше одна строка, чем другая, используется лексикографический порядок. То есть, например, строка «A» меньше, чем строка «B», так как символ ‘A’ в алфавите стоит перед символом ‘B’. Если первые символы строк равны, то в расчет берутся следующие символы. Например:

Поиск в строке

Метод indexOf() находит индекс первого вхождения подстроки в строку, а метод lastIndexOf() — индекс последнего вхождения. Если подстрока не будет найдена, то оба метода возвращают -1:

Метод startsWith() позволяют определить начинается ли строка с определенной подстроки, а метод endsWith() позволяет определить заканчивается строка на определенную подстроку:

Замена в строке

Метод replace() позволяет заменить в строке одну последовательность символов на другую:

Обрезка строки

Метод trim() позволяет удалить начальные и конечные пробелы:

Метод substring() возвращает подстроку, начиная с определенного индекса до конца или до определенного индекса:

Изменение регистра

Метод toLowerCase() переводит все символы строки в нижний регистр, а метод toUpperCase() — в верхний:

Split

Метод split() позволяет разбить строку на подстроки по определенному разделителю. Разделитель — какой-нибудь символ или набор символов передается в качестве параметра в метод. Например, разобьем текст на отдельные слова:

В данном случае строка будет разделяться по пробелу. Консольный вывод:

Java строку в массив char

Spiral group

C троки в Java. Взаимная конвертация String, StringBuffer , StringBuilder , char[], byte[]. JDK 1.6.

Статья опубликована : 15.02.2007

Последнее обновление : 18.03.2007

String s = new String( «The String convertation to StringBuffer » );

StringBuffer s_buffer = new StringBuffer ( s.subSequence (0, s.length ()));

String s = new String( «The String convertation to StringBuilder » );

StringBuilder s_buffer = new StringBuilder ( s.subSequence (0, s.length ()));

String s = new String( «The String convertation to char array » );

char[ ] ch = s.toCharArray ();

String s = new String( «The String convertation to byte array » );

byte[ ] b = s.getBytes ();

byte[ ] b = s.getBytes ( » Cp1251 » );

byte[ ] b = s.getBytes ( Charset.forName ( » Cp1251 » ));

(дополнительно требуется импорт пакета java . nio . charset . Charset )

StringBuffer sb = new StringBuffer ( » A StringBuffer convertation to String type » );

StringBuffer s_buffer = new StringBuilder ( » A StringBuffer convertation to StringBuilder type » );

StringBuilder s_builder = new StringBuilder ( s_buffer.subSequence (0, s_buffer.length ()));

StringBuilder s_buffer = new StringBuilder ( » A StringBuffer convertation to character array » );

char[ ] ch = s_builder.toString (). toCharArray ();

StringBuffer s_buffer = new StringBuffer ( » A convertation to the byte array » );

byte[ ] b = s_buffer.toString (). getBytes ();

byte[ ] b = s_buffer.toString (). getBytes ( » Cp1251 » );

byte[ ] b = s_buffer.toString (). getBytes ( Charset.forName ( » Cp1251 » ));

(дополнительно требуется импорт пакета java . nio . charset . Charset ; )

Читать еще:  Java string charset

StringBuilder sb = new StringBuilder ( «The convertation to String type » );

StringBuilder s_builder = new StringBuilder ( «The convertation to StringBuffer type » );

StringBuffer s_buffer = new StringBuffer ( s_builder.subSequence (0, s_builder.length ()));

StringBuilder s_builder = new StringBuilder ( » The convertation to character array » );

char[ ] ch = s_builder.toString (). toCharArray ();

StringBuilder s_builder = new StringBuilder ( » The convertation to character array » );

byte[ ] b = s_builder.toString (). getBytes ();

byte[ ] b = s_builder.toString (). getBytes ( » Cp1251 » );

byte[ ] b = s_builder.toString (). getBytes ( Charset.forName ( » Cp1251 » ));

(дополнительно требуется импорт пакета java . nio . charset . Charset )

Следующая программа демонстрирует конвертацию строк различных типов ( String , StringBuffer , StringBuilder ) друг в друга.

public static vo >args []) throws Exception

String s = new String( «First»);

StringBuffer s_buffer = new StringBuffer ( «Second»);

StringBuilder s_builder = new StringBuilder ( «Third»);

StringsConvertation sc = new StringsConvertation ( );

System.out.println ( «———— Converts String to StringBuffer ————«);

System.out.println ( «source string: «+s);

System.out.println ( «source type: «+ s.getClass (). getName ());

System.out.println ( «converted string: «+ sc.convertToStringBuffer (s));

System.out.println ( «result type: «+ sc.convertToStringBuffer (s). getClass (). getName ());

System.out.println ( «———— Converts StringBuilder to StringBuffer ————«);

System.out.println ( «source string: «+ s_builder );

System.out.println ( «source type: «+ s_builder.getClass (). getName ());

System.out.println ( «converted string: «+ sc.convertToStringBuffer ( s_builder ));

System.out.println ( «result type: «+ sc.convertToStringBuffer ( s_builder ). getClass (). getName ());

System.out.println ( «———— Converts String to StringBuilder ————«);

System.out.println ( «source string: «+s);

System.out.println ( «source type: «+ s.getClass (). getName ());

System.out.println ( «converted string: «+ sc.convertToStringBuilder (s));

System.out.println ( «result type: «+ sc.convertToStringBuilder (s). getClass (). getName ());

System.out.println ( «———— Converts StringBuffer to StringBuilder ————«);

System.out.println ( «source string: «+ s_buffer );

System.out.println ( «source type: «+ s_buffer.getClass (). getName ());

System.out.println ( «converted string: «+ sc.convertToStringBuilder ( s_buffer ));

System.out.println ( «result type: «+ sc.convertToStringBuilder ( s_buffer ). getClass (). getName ());

System.out.println ( «———— Converts StringBuffer to String ————«);

System.out.println ( «source string: «+ s_buffer );

System.out.println ( «source type: «+ s_buffer.getClass (). getName ());

System.out.println ( «converted string: «+ sc.convertToString ( s_buffer ));

System.out.println ( «result type: «+ sc.convertToString ( s_buffer ). getClass (). getName ());

System.out.println ( «———— Converts StringBuilder to String ————«);

System.out.println ( «source string: «+ s_builder );

System.out.println ( «source type: «+ s_builder.getClass (). getName ());

System.out.println ( «converted string: «+ sc.convertToString ( s_builder ));

System.out.println ( «result type: «+ sc.convertToString ( s_builder ). getClass (). getName ());

* К онвертирует строку типов String, StringBuilder , StringBuffer

* в строку типа StringBuffer .

public StringBuffer convertToStringBuffer ( CharSequence s)

return new StringBuffer ( s.subSequence (0,s.length()));

* К онвертирует строку типов String, StringBuilder , StringBuffer

* в строку типа StringBuilder .

public StringBuilder convertToStringBuilder ( CharSequence s)

return new StringBuilder ( s.subSequence (0,s.length()));

* К онвертирует строку типов String, StringBuilder , StringBuffer

* в строку типа String.

public String convertToString ( CharSequence s)

return s.subSequence (0,s.length()). toString ();

Следует учесть , что класс StringBuilder введен в JDK 1.5, а интерфейс CharSequence введен в JDK 1.4. Все три типа строк String , StringBuffer , StringBuilder реализуют интерфейс CharSequence , что дает возможность использовать свойства полиморфизма. Исходный код сокращен за счет сведения до минимума количества конвертационных методов.

String s = new String( ch );

Например, конкретный экземпляр Charset можно получить с помощью статического метода forName () , внутри которого необходимо указать аргумент – наименование кодировки. Класс Charset удобен тем, что его методы являются потокозащищенными и один экземпляр может разделяться по доступу множеством потоков .

Ссылка на основную публикацию
Adblock
detector