.equal()方法不按预期工作

3
btntxt=alphbtn[0].getText().toString();
cntr=cnt;
Log.i("Chr", "" + cnt + " " + crtchr);
for (int i = 0; i<strlnth ; i++)
{
    crtchr=(String.valueOf(curntnam.charAt(i)));
    if (strlnth > 8 && i==7)
    {
        i++;
    }
    if (btntxt.equals((crtchr)))
    {
        bt[i].setText(crtchr);
        cnt++;
    }
    Log.i("Chr", ""+crtchr);}
    Log.i("BUTTN", ""+btntxt);
}

在上述代码中,我想将一个字符串与各个按钮上的 a-z 按钮文本进行比较。我使用一个按钮数组来存储所有 26 个字母的按钮。当 curntnam 包含 8 个字符的单词时,它可以正常工作,但是当单词的字符超过 8 个时,应用程序就会崩溃,并且循环内外的日志正确地显示消息。当我点击错误时,会在以下代码中显示错误:

if (btntxt.equals((crtchr))){

那么我需要做什么才能使它对超过 8 个字符的单词正确工作?请帮助我,我的应用程序已经完成,但是这个错误阻止了我完成。


2
当应用程序崩溃时显示日志 - karan
1
你想做什么?请给出示例数据。strlen>8&&i==7 很困惑。 - Ambrish
使用compareTo()或matches()方法; - IntelliJ Amiya
2个回答

0

如果这行代码出现错误,btntxt 必须为 null。控制 btntxt 是否为 null 或记录此变量以进行控制。


0

我的代码中有一个错误,for循环在8后被重复调用,导致了应用程序崩溃。现在我已经解决了这个问题。


我已经从这个答案中删除了补充问题,因为人们在那里看不到它。如果您有新的问题,请单独提出,并链接到此问题,如果您认为它相关。 - halfer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接