我有一个字符串"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");
}
}});
}
}
答案 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;
}
}
我认为这应该有效。