Qt单个字符判断

1.相关说明

字符的Unicode编码、单个字符的判断

2.界面绘制

3.相关主要代码

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

// 每个字符的Unicode
void Widget::on_btnGetChars_clicked()
{
    // 获取输入框信息
    QString str = ui->editStr->text();
    if(str.isEmpty()) return;

    for(qint16 i = 0; i < str.size(); i++){
        QChar ch = str.at(i);
        char16_t uniCode = ch.unicode();
        QString chStr(ch);
        QString info = chStr + QString::asprintf("\t, Unicode编码=0x%X", uniCode);
        ui->plainTextEdit->appendPlainText(info);
    }
}

// 清空文本框
void Widget::on_btnClear_clicked()
{
    ui->plainTextEdit->clear();
}

// 每个字符特性判断
void Widget::on_btnCharJudge_clicked()
{
    QString str = ui->editChar->text();
    if(str.isEmpty()){
        return;
    }
    QChar ch = str.at(0);
    char16_t uniCode = ch.unicode();
    QString info = str + QString::asprintf("\t, Unicode编码=0x%X", uniCode);
    ui->plainTextEdit->appendPlainText(info);
    ui->checkDigit->setChecked(ch.isDigit());   // 是否为数字 0~9
    ui->checkLetter->setChecked(ch.isLetter()); // 是否为字母
    ui->checkLetterOrNum->setChecked(ch.isLetterOrNumber()); // 是否位数字或字母
    ui->checkUpper->setChecked(ch.isUpper());   // 是否为大写字母
    ui->checkLower->setChecked(ch.isLower());   // 是否为小写字母
    ui->checkMark->setChecked(ch.isMark());     // 是否为字符
    ui->checkSpace->setChecked(ch.isSpace());   // 是否为空白字符
    ui->checkSymbol->setChecked(ch.isSymbol()); // 是否为符号
    ui->checkPunct->setChecked(ch.isPunct());   // 是否为标点符号
}

// 与Latin1的转换
void Widget::on_btnCvtLatin_clicked()
{
    QString str = "Dimple";
    ui->plainTextEdit->appendPlainText(str);
    QChar ch = QChar('P');
    str[0] = ch;
    ui->plainTextEdit->appendPlainText("\n"+str);
}

// 与UTF-16的转换
void Widget::on_btnUtfCvt_clicked()
{
    QString str = "Hello,北京";
    ui->plainTextEdit->appendPlainText(str);
    QString cd = "成都";
    str[6] = cd.at(0);
    str[7] = cd.at(1);
    ui->plainTextEdit->appendPlainText("\n" + str);
}

// QChar比较和替换
void Widget::on_btnCharCmpCvt_clicked()
{
    QString HuStr = "河to湖";
    QChar He = QChar::fromUcs2(HuStr[0].unicode());
    QChar Hu = QChar(HuStr[3].unicode());
    QString str = "他们来自河南或河北";
    ui->plainTextEdit->appendPlainText(str);
    for(int i = 0; i < str.size(); i++){
        if(str[i] == He){
            str[i] = Hu;
        }
    }
    ui->plainTextEdit->appendPlainText("\n"+str);
}

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值