0

My arrays.xml:

<string-array name="chart_names">
        <item>abc</item>
</string-array>

My testing code:

String[] chartNames = getActivity().getResources().getStringArray(R.array.chart_names);

if ("abc" == chartNames[0]) {
  Log.v("msg", "yes");
}else{
  Log.v("msg", "no");
}

I always get false, so the console always prints "no".

Why does this happened ? It's really strange.....

Please help me....... Thanks.

user3087000
  • 731
  • 1
  • 13
  • 24

3 Answers3

1

The best practice is use equals() to compare strings or any objects

Try this code:

String[] chartNames = getActivity().getResources().getStringArray(R.array.chart_names);

if (chartNames[0].equals("abc")) {
  Log.v("msg", "yes");
}else{
  Log.v("msg", "no");
}
madhan kumar
  • 1,560
  • 2
  • 26
  • 36
1

Use .equals() to compare two Strings

refer Docs

Sathish Kumar J
  • 4,280
  • 1
  • 20
  • 48
1

for compare two string you can use .compareTo() or .equals() functions, of course using .equals() function is better.

*.equals():

if ("text1 to compare".equals("text2 to compare")) {
  Log.v("equal", "yes");
}else{
  Log.v("equal", "no");
}

*.compareTo()

if(str1.compareTo("str2")==0){
Log.v("equal", "yes");
}

Note: "foo".equals((String)null) returns false while "foo".compareTo((String)null) == 0 throws a NullPointerException

Amin Rahkan
  • 119
  • 3
  • 11