В Java, почему невозможно преобразовать String в массив Char и наоборот?Строки - это не последовательность символов в java?
Почему они не сопоставимы?
char matrixC[][] = {{'s', 't','a', 'c','k'},
{'o','v','e','r'},
{'f','l','o','w'}};
String [] matrixS = {"stack", "over","flow"};
// matrixS=matrixC //Not allowed...
if (matrixS.equals(matrixC) || matrixC.equals(matrixS) )
{
System.out.print("true");
}
else
System.out.print("false"); //Output
Отредактировано:
После некоторых исследований и копания, я нашел ответ на мой первый вопрос (почему это не представляется возможным преобразовать строку в массив Char и наоборот?) В ниже ссылка, как объясняется roger_that. Спасибо за подсказку Джеймс. Неизменное
String is immutable. What exactly is the meaning?
Итак, у нас есть отдельный бассейн Струнный в Java кучу, которая хранит и создает новые строковые литералы каждый раз, и направить их на строковые объекты соответственно.
Тем не менее, у меня есть некоторые сомнения по поводу их сравнения (я говорю о простой строки и последовательности Чар здесь, а не 2d массивы)
Почему не существует какой-либо стандартный и простой способ сравнить строку и Char SEQ? Один из способов может быть, char data [] = {'a', 'b', 'c'}; Строка str = "abc";
if (str.length()==data.length && str.length()>0)
{
for (int i=0;i<str.length();i++)
{
if (str.charAt(i)!=data[i])
System.out.println("not equal");
}
}
else
System.out.println("not equal");
Есть ли другой простой/прямой способ сделать это, за исключением того,
char data[] = {'a', 'b', 'c'};
String str="abc";
String str1= new String(data);
if (str1.equals(str))
System.out.println("equal");
Вывод:
Строки не последовательность символов в Java.
Они должны удалить эту строку отсюда https://docs.oracle.com/javase/tutorial/java/data/strings.html
Струны
Строки, которые широко используются в программировании Java, представляют собой последовательность символов . На языке программирования Java строки являются объектами.
Это линия, из которой началось мое замешательство. : |
Пожалуйста, исправьте мое понимание.
Поскольку java.lang.String - это реальный объект, который не является эквивалентом char [], поэтому непосредственная проверка равенства была бы глупо. Посмотрите на https://docs.oracle.com/javase/8/docs/api/java/lang/String.html и потратите еще немного времени на книгу основ. – lscoughlin
java String имеет метод toCharArray(), для чего это стоит. – swingMan