Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个相同的字符串不相等。为什么?_Java_Android - Fatal编程技术网

Java 两个相同的字符串不相等。为什么?

Java 两个相同的字符串不相等。为什么?,java,android,Java,Android,我正在使用Firebase开发一个android移动应用程序 我可以获得名称为“EgeUniversity”的数据,但当我将其与以下数据进行比较时: String name = "EgeUniversity"; 他们彼此不平等 这是我获取用户大学名称的代码: FirebaseDatabase firebaseDatabase3 = FirebaseDatabase.getInstance (); DatabaseReference myRefNe2= firebaseDatabase3

我正在使用Firebase开发一个android移动应用程序

我可以获得名称为“EgeUniversity”的数据,但当我将其与以下数据进行比较时:

String name = "EgeUniversity";
他们彼此不平等

这是我获取用户大学名称的代码:

FirebaseDatabase firebaseDatabase3 = FirebaseDatabase.getInstance ();
    DatabaseReference myRefNe2= firebaseDatabase3.getReference ("users");

    myRefNe2.addValueEventListener ( new ValueEventListener ( ) {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            FirebaseAuth mAuth37 =FirebaseAuth.getInstance ();

            String userNameCurrent = mAuth37.getCurrentUser ().getDisplayName ();

            universityofUser24 = dataSnapshot.child ( userNameCurrent ).child ( "universityName" ).getValue (String.class);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

            Toast.makeText ( getApplicationContext (),databaseError.getMessage (),Toast.LENGTH_SHORT ).show ();
        }
    } );
我使用下面的代码通过使用“大学名称”从firebase获取另一个数据

但这些值并不相等。 我是说

String nameofUni = "EgeUniversity";
nameofUni不等于Fuser24大学

但当我使用“Log.d”编写它们时,它们看起来完全一样

顺便说一句,我已经用“trim()”控制了空格

你说过:

我将其与:

String name = "EgeUniversity";
String name=“大学”

这不是一种比较,而是一种分配

要在Java中比较字符串是否相等,必须使用String.equals()

trim()函数将删除字符串末尾或开头的空格! 如果您想删除字符串中间的空格,您将使用另一个函数,如:

str = str.replaceAll(" ", "");
要比较字符串,将使用函数equals()和not==:

boolean isSame = str1.equals(str2);

是的,一个打字错误。仔细检查你的拼写有帮助!给我们看一下“Log.d”,也许我们可以看到你看不到的区别。你能发布你用来比较字符串的代码吗?sametdeneme1 d/OUTPUT:数据来自数据库:eGetUniversity。sametdeneme1 d/OUTPUT:数据:eGetUniversity当我将路径名称更改为此表单“Users/eGetUniversity”时这很有效。谢谢你的回答,帕特里克,但这不是我难以解释的问题。我的意思是,当我从数据库中获取数据时,字符串形式的数据会发生变化。相同的长度,相同的字母,但它们不相等/相同…等等。很遗憾,您没有在代码中显示测试它们相等的位置。因为我猜您使用的是str1==str2而不是str1.equals(str2)。这是stackoverflow上最常见的Java错误