当前位置:   article > 正文

Qt 判断QString中是否有汉字、字母和数字_qt判断字符是汉字

qt判断字符是汉字

目录

1、判断QString是否有汉字

2、判断QString是否是数字

3、判断QString是否是纯英文

4、判断QString是否是纯数字和

5、判断QString是否是纯数字和,如果有.仅有一个

6、判断QString是否是英文或数字

7、判断QString是否是中文或数字

1、判断QString是否有汉字

第一种方法,逐一取中QString的字符,进行判断。
  1.    QString str="123我456";
  2.     int nCount = str.count();
  3.     for(int i = 0 ; i < nCount ; i++)
  4.     {
  5.         QChar cha = str.at(i);
  6.         ushort uni = cha.unicode();
  7.         if(uni >= 0x4E00 && uni <= 0x9FA5)
  8.         {
  9.             //这个字符是中文
  10.             qDebug()<<"中文:"<<uni;//unicode编码 25105-"我"
  11.         }
  12.     }
第二种方法,是利用强大的正则表达式进行判断。
 
  1. QString str="123我456";
  2.  bool b = str.contains(QRegExp("[\\x4e00-\\x9fa5]+"));
  3.     if(b)
  4.     {
  5.         //存在中文
  6.         qDebug()<<"存在中文";
  7.     }

2、判断QString是否是数字

第一种方法: 判断字符串否为数字,其实Qt有一个函数toDouble/toInt等等可以实现这个功能,如下:
 
  1.    //QString str = "1234.56";//double类型
  2.     QString str = "123";  //int类型
  3.     //QString str = "我是123";
  4.     bool ok;
  5.     //double val = str.toDouble(&ok); // ok为true说明str为数字,为false说明str为非数字(double类型)
  6.     int val = str.toInt(&ok); // ok为true说明str为数字,为false说明str为非数字(int类型 )
  7.     if(ok)
  8.        qDebug()<<"str是数字";
  9.     else
  10.         qDebug()<<"str非数字";
第二种方法
  1.  QString str="abc123";
  2.     QByteArray ba = str.toLatin1();
  3.     const char *s = ba.data();
  4.     while(*s)
  5.     {
  6.         if(*s>='0' && *s<='9')
  7.         {
  8.             qDebug()<<"数字";
  9.         }
  10.         else
  11.         {
  12.             qDebug()<<"非数字";
  13.         }
  14.         s++;
  15.     }

3、判断QString是否是纯英文

  1.    QString str="abc12def";
  2.     QByteArray ba = str.toLatin1();
  3.     const char *s = ba.data();
  4.     while(*s)
  5.     {
  6.         if((*s>='A' && *s<='Z') || (*s>='a' && *s<='z'))
  7.         {
  8.             qDebug()<<"英文";
  9.         }
  10.         else
  11.         {
  12.             qDebug()<<"非英文";
  13.         }
  14.         s++;
  15.     }

4、判断QString是否是纯数字和

  
  1.   QString str="12@3.4#56";
  2.     QByteArray ba = str.toLatin1();
  3.     const char *s = ba.data();
  4.     bool bret = true;
  5.     while(*s)
  6.     {
  7.         if(*s<'0' || *s>'9')
  8.         {
  9.             if(*s!='.')
  10.             {
  11.                 qDebug()<<"不是纯数字和";
  12.                 bret = false;
  13.                 break;
  14.             }
  15.         }
  16.         s++;
  17.     }

5、判断QString是否是纯数字和,如果有.仅有一个

  1.     QString str="12.34.56#78";
  2.     QByteArray ba = str.toLatin1();
  3.     const char *s = ba.data();
  4.     bool bret = true;
  5.     int iPoint=0;
  6.     while(*s)
  7.     {
  8.         if(*s<'0' || *s>'9')
  9.         {
  10.             if(*s!='.')
  11.             {
  12.                 qDebug()<<"不是纯数字和";
  13.                 bret = false;
  14.                 break;
  15.             }
  16.             else
  17.             {
  18.                 iPoint++;
  19.                 if(iPoint>=2)
  20.                 {
  21.                     qDebug()<<"不是纯数字和";
  22.                     bret = false;
  23.                     break;
  24.                 }
  25.             }
  26.         }
  27.         s++;
  28.     }

6、判断QString是否是英文或数字

  1.   //是否是英文或数字
  2.     QString str="123我";
  3.     QByteArray ba = str.toLatin1();
  4.         const char *s = ba.data();
  5.         bool bret = true;
  6.         while(*s)
  7.         {
  8.             if((*s>='A' && *s<='Z') || (*s>='a' && *s<='z') || (*s>='0' && *s<='9'))
  9.             {
  10.             qDebug()<<"英文或数字";
  11.             }
  12.             else
  13.             {
  14.                 qDebug()<<"非英文或非数字";
  15.                 bret = false;
  16.                 break;
  17.             }
  18.             s++;
  19.         }

7、判断QString是否是中文或数字

  1.    QString str="123我abc";
  2.     int nCount = str.count();
  3.     for(int i=0; i<nCount; ++i)
  4.     {
  5.         QChar cha = str.at(i);
  6.         ushort uni = cha.unicode();
  7.         if((uni >= 0x4E00 && uni <= 0x9FA5)  || (uni >= '0' && uni <= '9'))
  8.         {
  9.             qDebug()<<"中文或数字";
  10.         }
  11.         else
  12.         {
  13.             qDebug()<<"非中文或非数字";
  14.         }
  15.     }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/300158
推荐阅读
相关标签
  

闽ICP备14008679号