Технически «ndate» не является нулевым - это тип значения, при этом его значение указано как null.
Когда вы пишете DateTime?
, это просто сокращение для Nullable
, который является структурой. Нет никакого способа для этого технически быть нулевым, поскольку это не ссылочный тип.
Нет, это решение абсолютно правильное и очень минимальное.
Отметьте, однако, что это очень необычная ситуация: поскольку String
обрабатывается специально в Java, даже "foo"
на самом деле является String
. Таким образом, в обычном коде нет необходимости разбивать строку на отдельные char
и объединять их обратно.
Сравните это с C / C ++, где "foo"
у вас есть пакет char
, оканчивающийся нулевым байтом на одной стороне и string
на другой стороне, и многие преобразования между ними обусловлены унаследованными методами.
String text = String.copyValueOf(data);
или
String text = String.valueOf(data);
, возможно, лучше (инкапсулирует вызов new String
).
Это преобразует массив символов обратно в строку:
char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
Теперь, чтобы преобразовать массив символов в строку, есть два способа.
Arrays.toString(c);
Возвращает строку [w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]
.
И:
String.valueOf(c)
Возвращает строку wwwwww3333dfevvv
.
В заключение : обратите внимание на Arrays.toString(c)
, потому что вы получите "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]"
вместо "wwwwww3333dfevvv"
.
Строка в Java это просто объект вокруг массива символов. Следовательно, a
char[]
идентична распакованной строке с теми же символами. Создавая новую строку из вашего массива символов
new String(char[])
, вы, по сути, говорите компилятору автоматически помещать объект String вокруг массива символов.
Вы можете использовать метод String.valueOf
.
Например,
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
String b = String.valueOf(a);
System.out.println("Char Array back to String is: " + b);
Подробнее о массиве символов в строке вы можете обратиться по ссылкам ниже
https://docs.oracle.com/javase/7/ docs / api / java / lang / String.html
package naresh.java;
public class TestDoubleString {
public static void main(String args[]){
String str="abbcccddef";
char charArray[]=str.toCharArray();
int len=charArray.length;
for(int i=0;i<len;i++){
//if i th one and i+1 th character are same then update the charArray
try{
if(charArray[i]==charArray[i+1]){
charArray[i]='0';
}}
catch(Exception e){
System.out.println("Exception");
}
}//finally printing final character string
for(int k=0;k<charArray.length;k++){
if(charArray[k]!='0'){
System.out.println(charArray[k]);
} }
}
}
Попробуйте это:
CharSequence[] charArray = {"a","b","c"};
for (int i = 0; i < charArray.length; i++){
String str = charArray.toString().join("", charArray[i]);
System.out.print(str);
}
Вы также можете использовать класс StringBuilder
String b = new StringBuilder(a).toString();
Использование String или StringBuilder зависит от требований вашего метода.
1 альтернативный способ сделать:
String b = a + "";
//Given Character Array
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
//Converting Character Array to String using String funtion
System.out.println(String.valueOf(a));
//OUTPUT : hello world
Преобразование любого данного Типа массива для Строкового представления функции потока Java 8 использования
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());