如果 QString 包含一个数字

if QString contains a number

我想知道一个字符串是否包含“1”或“0”,所以我写了这段代码:

    if ((input.contains('0'))||(input.contains('1'))) {
        ui->answerbox->setText(QString::number(BinToDec(number)));
    }
    else {
        ui->answerbox->setText("Error");
    }

如果我输入“014”,它会运行 if 块,但如果我输入“4”,它会运行 else 块。怎么了?

伙计,这个函数BinToDec简直就是一场灾难。

bool success;
auto value = input.toInt(&success, 2);
if (success) {
    ui->answerbox->setText(QString::number(value));
}
else {
    ui->answerbox->setText("Error");
}