比较单个单词与qstring数组

Comparing single word with array of QStrings

本文关键字:qstring 数组 单个单 比较      更新时间:2023-10-16

我的代码:

void MainWindow::on_lineEdit_textChanged(const QString &arg1)
{
    QString Vulgarisms[] = {"k****", "c****", "p******", "d*******", "j*******"}; // there is 5 QStrings in the array
    for(int i = 0; i < 5; i++)
    {
        if((arg1.toLower() == Vulgars[i])
            ui->statusBar->showMessage("What is wrong with you?");
        else
            ui->statusBar->showMessage("");
    }
}

我的问题是比较只适用于"d********"这个词。我还尝试使用普通字符串:

string Vulgarisms[5] = {"k****", "c****", "p******", "d*******", "j*******"};

我添加了arg1.toStdString().toLower()方法,它仍然不工作。

一个问题是,即使找到了匹配项,也要继续循环。

这意味着如果arg1匹配数组中的第一个字符串(并且您设置了状态栏消息),那么您将继续检查数组中的其他单词,并且arg1将不匹配任何这些,因此状态栏消息将被清除。

您需要在找到匹配后将break排除在循环之外。