Qt上截取中英文混合字符串的指定长度内容

来源:互联网 发布:淘宝买蔬菜种子到哪家 编辑:程序博客网 时间:2024/05/09 02:02
如两个字符串:
QString str("中华人民共和国123中华人民共和国");
QString s = getString(str, 20);
要截取后,输出:
s = "中华人民共和国123中...";
即要把中英文混合的字符串,在截取长度要一致,而且不能出现中文被从中间截断的情况
QString MainWindow:: getString(QString s, int l){    QString temp = s;    QRegExp rx("[\u4e00-\u9fa5]");    if (temp.replace(rx, "zz").length() <= l) {        return s;    }    for (int i=s.length(); i>=0; i--) {        temp = s.mid(0,i);        if (temp.replace(rx, "zz").length() <= l) {            return s.mid(0,i) + "";        }    }    return QString("");}
void MainWindow::init(){    QString str = "abcdefghijklmnopqrstuvwxyz1234567890中华人民共和国123中华人民共和国";    while(str.size() > 4){        QString tmpStr = getString(str, 4);        str.remove(0, tmpStr.length());        qDebug() << "str:" << str;        qDebug() << "tmpstr:" << tmpStr;    }}



0 0
原创粉丝点击