非空字符串中的空字符串
我对代码感到困惑
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
所以我的第一个意见是字符串中的每个字符在两侧都有一个空字符串。但是,如果是这种情况,则在(在字符串中)之后,输出的第二行中应该有两个(一个用于“a”的末尾,第二个用于“s”的开头)。""
'a'
'1'
现在我检查了这些链接中的字符串是否表示为char[]在Java中,String是字符数组吗?而Java中的字符串表示我得到的答案是YES。
所以我试图为变量分配一个空字符,但它给了我一个编译器错误,''
char
字符常量无效
当我尝试时,相同的过程给出了编译器错误char[]
char[] c = {'','a','','s'}; // CTE
所以我对三件事感到困惑。
- 空字符串如何由 char[] 表示?
- 为什么我得到上述代码的输出?
- String s1 在首次初始化时如何用 char[] 表示?
对不起,如果我的问题的任何部分都错了。