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

时间:2019-03-09 22:04:58

标签: java android

我正在使用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中获取另一个数据。

 DatabaseReference newReference = firebaseDatabase.getReference ( "Posts/"+universityofUser24 );
    newReference.addValueEventListener ( new ValueEventListener ( ) {...

但是这些值彼此不相等。  我的意思是

String nameofUni = "EgeUniversity";

nameofUni不等于UniversityofUser24。

但是当我使用“ Log.d”编写它们时,它们似乎完全相同。

我已经通过使用“ trim()”控制了空白空间。

DataBase Structure

2 个答案:

答案 0 :(得分:0)

您说:

我将其与:

String name = "EgeUniversity";

那不是比较,而是分配。

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

答案 1 :(得分:0)

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

str = str.replaceAll(" ", "");

要比较字符串,您将使用函数equals()而不是==:

boolean isSame = str1.equals(str2);