如何比较android中的字符串和字符数组?

时间:2013-03-15 14:56:39

标签: android string character-arrays

我有一个字符串"sss"和一个字符数组{'s','s','s'}。我将数组转换为字符串,但比较它们时不打印消息“两者都相等”。为什么?

public class RoughActivity extends Activity 
{
 private Button checkButton;
 private TextView text;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
        start();
        }

        private void start() {
            int i;
            checkButton=(Button)findViewById(R.id.go);
            text=(TextView)findViewById(R.id.display);
            final String question="sss";
            final char answer[]=new char[question.length()];
            for(i=0;i<question.length();i++)
            {
                answer[i]='s';
            }
            checkButton.setOnClickListener(new View.OnClickListener(){ //on clicking the button,the text must be filled with "both are equal"
                public void onClick(View v){
                    if(question.equals(answer))
                    {
                        text.setText("both are equal");
                    }


                }});
}
}

3 个答案:

答案 0 :(得分:5)

从char数组创建一个新字符串并进行比较。

If(question.equals(new String(answer)){
}

If(question.equals(answer.toString()){
}

话虽如此,我无法想象你为什么要在char []中存储答案。

答案 1 :(得分:1)

public boolean equals (Object object)

此方法将指定的对象与此字符串进行比较,如果它们相等则返回true。该对象必须是具有相同顺序的相同字符的字符串实例。

  

首先,您需要使用toString方法将其转换为String。

例如:

String string = charArray.toString();

答案 2 :(得分:0)

你可以使用循环。

boolean equal = true;
for (int i = 0; i < answer.length; i++) {
      if (!question.charAt(i) == answer[i] {
           equal = false;
           break;
      }
 }

我认为这应该有效。