copyValueOf() в Java - создать строку из массива чаров
Данная статья:
- написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
- это одна из статей из нашего "Самоучителя по Java"
Метод copyValueOf() в Java
Метод copyValueOf() создает строку из массива чаров (от англ. char).
Метод copyValueOf() с дополнительными параметрами возвращает строку, составленную из части массива чаров (от англ. char).
Синтаксис метода:
1 2 |
public static String copyValueOf(char[] data) public static String copyValueOf(char[] data, int offset, int count) |
Вызов:
1 2 |
String result = str.copyValueOf(char[] data); String result = str.copyValueOf(char[] data, int offset, int count); |
Пример 1 - без параметров:
1 2 3 4 5 6 7 8 9 10 11 |
public class Test { public static void main(String args[]) { char[] chars = {'V', 'e', 'r', 't', 'e', 'x', ' ', 'A', 'c', 'a', 'd', 'e', 'm', 'y'}; String s1 = "String"; System.out.println("String s1 before copyValueOf: " + s1); s1 = s1.copyValueOf(chars); System.out.println("String s1 after copyValueOf: " + s1); } } |
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите следующее:
Комментарии к коду:
После вызова copyValueOf() изначальное содержание строки ("String") поменялось на строку, созданную из массива чаров char ("Vertex Academy").
- Обратите внимание, что метод не создает новую строку, а только перезаписывает уже существующую. Например, если Вы попробуете выполнить следующий код:
1 2 3 4 5 6 7 8 |
public class Test { public static void main(String args[]) { char[] chars = {'V', 'e', 'r', 't', 'e', 'x', ' ', 'A', 'c', 'a', 'd', 'e', 'm', 'y'}; String s1 = s1.copyValueOf( chars ); System.out.println("Returned String: " + s1); } } |
Вы получите ошибку, потому что строка s1 еще не была инициализирована.
- Кроме того, строка, через которую вызывается метод copyValueOf(), не меняется.
1 2 3 4 5 6 7 8 9 10 11 |
public class Test { public static void main(String args[]) { char[] chars = {'V', 'e', 'r', 't', 'e', 'x', ' ', 'A', 'c', 'a', 'd', 'e', 'm', 'y'}; String s1 = "String"; String s2 = s1.copyValueOf( chars ); System.out.println("String s1 after copyValueOf: " + s1); System.out.println("String s2 after copyValueOf: " + s2); } } |
Мы получим:
Как видите, изменилась только строка s2, а s1 все еще имеет значение "String".
Пример 2 - с параметрами:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Test { public static void main(String args[]) { char[] chars = {'V', 'e', 'r', 't', 'e', 'x', ' ', 'A', 'c', 'a', 'd', 'e', 'm', 'y'}; String s1 = "String"; String s2 = s1.copyValueOf( chars); String s3 = s1.copyValueOf( chars, 2, 7 ); System.out.println("String without offset: " + s2); System.out.println("String with offset 2 and length 7: " + s3); } } |
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите следующее:
Комментарии к коду:
Мы задали смещение 2 и длину строки 7. В итоге, мы получили строку, которая начинается не с первого, а с третьего символа, и имеет длину 7.
Данная статья написана Vertex Academy. Можно пройти наши курсы Java с нуля. Детальнее на сайте.