字符串不是java中的字符序列?

时间:2015-06-10 12:47:10

标签: java arrays string char equals

在Java中,为什么不能将String转换为Char数组,反之亦然?

为什么他们没有可比性?

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

编辑:

经过一番研究和挖掘, 我发现了第一个问题的答案(为什么不可能将字符串转换为字符串数组,反之亦然?)在下面的链接中,如roger_that所述。谢谢詹姆斯的提示。的不可变

String is immutable. What exactly is the meaning?

因此,我们在java堆中有单独的String池,每次都存储并创建新的String文字,并相应地将它们引用到String对象。

不过,我对他们的比较有一些疑问(我在这里谈的是简单的字符串和字符序列,而不是2d数组)

为什么没有任何标准和简单的方法来比较String和Char seq? 一种方法是,             char data [] = {' a',' b',' c'};             String str =" abc&#34 ;;

        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编程语言中,字符串是对象。

这是我开始迷茫的路线。 :|

请纠正我的理解。

1 个答案:

答案 0 :(得分:0)

在C ++中(我猜测你是从哪里来的)字符串存储为字符数组。在Java中不是这种情况。在java中,字符串是不可变对象,而不是Char []。