Я запутался с кодом
public class StringReplaceWithEmptyString
{
public static void main(String[] args)
{
String s1 = "asdfgh";
System.out.println(s1);
s1 = s1.replace("", "1");
System.out.println(s1);
}
}
И результат:
asdfgh
1a1s1d1f1g1h1
Итак, мое первое мнение заключалось в том, что каждый символ в String имеет пустую строку ""
с обеих сторон. Но если в этом случае после 'a'
(в строке) должно быть два '1'
, входящих во вторую строку вывода (один для конца 'a' и второй для начала 's').
Теперь я проверил, представлен ли String как char [] в этих ссылках В Java, является String массив символов? и Строковое представление в Java. Я получил ответ как ДА.
Итак, я попытался присвоить пустой символ ''
переменной char
, но он дал мне ошибку компилятора,
Неверная константа символа
Тот же процесс дает ошибку компилятора, когда я пытался в char[]
char[] c = {'','a','','s'}; // CTE
Итак, я смущен тремя вещами.
- Как пустая строка представлена char []?
- Почему я получаю этот вывод для вышеуказанного кода?
- Как строка s1 представлена в char [] при первом инициализации?
Извините, если я ошибаюсь в любой части моего вопроса.