调试时的值相同,但在if语句中相同[重复](Values are same on debug, but not in if statement [duplicate])
这个问题在这里已经有了答案:
如何比较Java中的字符串? 23个答案if语句有问题。 两个值 - 字符串,一个在类中由箭头声明,另一个由radiobutton.gettext()声明。 在调试中,我可以读取两个var的值。 它们是相同的,但是如果声明说它们不同。 你有什么想法为什么会发生这种情况?
Debuger: https ://imgur.com/a/NIdrQcf
获得rbAnswer :
private String mChoices [][] = { /* #8 */ {"razgovor između pomoraca u karanteni i njihovih obitelji", "za osobno razmatranje i razgovor s duhovnikom"," "," "},}
...
public String getChoice1(int a) { String choice0 = mChoices[a][0]; return choice0; } public String getChoice2(int a) { String choice1 = mChoices[a][1]; return choice1; }...
rbGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { String rbAnswer; public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == R.id.radiobtn1) rbAnswer = "" + rb1.getText(); else if (checkedId == R.id.radiobtn2) rbAnswer = "" + rb2.getText(); else if (checkedId == R.id.radiobtn3) rbAnswer = "" + rb3.getText(); else if (checkedId == R.id.radiobtn4) rbAnswer = "" + rb4.getText(); tTEST.setText(rbAnswer); if (rbAnswer == mAnswer) { varScoreTrue = varScoreTrue + 1; updateScore(varScoreTrue); obavijestTocno(); updateQuestion(); } else { varScoreFlase = varScoreFlase + 1; updateScore(varScoreFlase); obavijestKrivo(); updateQuestion(); } } });宣布mAnswer :
private String mCorrectAnswers[] = { ... /* #8 */ "za osobno razmatranje i razgovor s duhovnikom", ... }...
public String getCorrectAnswer(int a) { String answer = mCorrectAnswers[a]; return answer; }...
mAnswer = mQuestionLibrary.getCorrectAnswer(mQuestionNumber);This question already has an answer here:
How do I compare strings in Java? 23 answersI have a problem with if statement. Two values - strings, one declared in class by arrow and another declared by radiobutton.gettext(). In debuging i can read values of both var. and they are same, but if statement says they are different. Do you have any idea why is this happening?
Debuger: https://imgur.com/a/NIdrQcf
Getting rbAnswer :
private String mChoices [][] = { /* #8 */ {"razgovor između pomoraca u karanteni i njihovih obitelji", "za osobno razmatranje i razgovor s duhovnikom"," "," "},}
...
public String getChoice1(int a) { String choice0 = mChoices[a][0]; return choice0; } public String getChoice2(int a) { String choice1 = mChoices[a][1]; return choice1; }...
rbGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { String rbAnswer; public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == R.id.radiobtn1) rbAnswer = "" + rb1.getText(); else if (checkedId == R.id.radiobtn2) rbAnswer = "" + rb2.getText(); else if (checkedId == R.id.radiobtn3) rbAnswer = "" + rb3.getText(); else if (checkedId == R.id.radiobtn4) rbAnswer = "" + rb4.getText(); tTEST.setText(rbAnswer); if (rbAnswer == mAnswer) { varScoreTrue = varScoreTrue + 1; updateScore(varScoreTrue); obavijestTocno(); updateQuestion(); } else { varScoreFlase = varScoreFlase + 1; updateScore(varScoreFlase); obavijestKrivo(); updateQuestion(); } } });Declaring mAnswer:
private String mCorrectAnswers[] = { ... /* #8 */ "za osobno razmatranje i razgovor s duhovnikom", ... }...
public String getCorrectAnswer(int a) { String answer = mCorrectAnswers[a]; return answer; }...
mAnswer = mQuestionLibrary.getCorrectAnswer(mQuestionNumber);最满意答案
你做错了比较。
更改:
rbAnswer == mAnswer至
rbAnswer.equals(mAnswer)YOu're doing wrong comparation.
Change:
rbAnswer == mAnswerto
rbAnswer.equals(mAnswer)更多推荐
发布评论