Нет, вы не можете этого сделать. Вы можете привести char
к Character
, потому что тип объекта Character
является «коробочной» версией char
базового типа .
Character charObject = (Character) 'c';
char charBase = (char) charObject;
на самом деле, потому что для автоматической упаковки и автоматической распаковки вам не нужно явное приведение:
Character charObject = 'c';
char charBase = charObject;
Однако String
является типом объекта во многом как любой другой тип объекта. Это означает, что вы не можете привести его к char
, вам нужно использовать метод charAt(int index)
для извлечения символов из него.
Будьте осторожны, хотя вы можете захотеть использовать codePointAt(int index)
вместо этого, поскольку кодовые точки Unicode могут выходить за пределы 65536 кодовых точек, которые могут быть сохранены в 16 битах, которые представляет char
. Поэтому убедитесь, что в вашей строке нет символов, определенных в «дополнительных плоскостях» при использовании charAt(int index)
.
Как и в Java, любой тип может быть преобразован в String
, возможно, напрямую добавляйте символы в строку, поэтому "strin" + 'g'
работает нормально. Это также потому, что оператор +
для String
является синтаксическим c сахаром в Java (т.е. другие объекты не могут использовать +
в качестве оператора, вам придется использовать метод, такой как append()
). Помните, что возвращает новую строку вместо расширения исходной строки "strin"
. Java строки в конце концов неизменны.