调试时的值相同,但在if语句中相同[重复](Values are same on debug, but not in if statement [duplicate])

编程入门 行业动态 更新时间:2024-10-09 13:23:24
调试时的值相同,但在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 answers

I 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 == mAnswer

to

rbAnswer.equals(mAnswer)

更多推荐

本文发布于:2023-07-30 14:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1338816.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:但在   语句   Values   duplicate   statement

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!