首页 > 编程知识 正文

java字符串转义字符不被处理,重写compareto方法

时间:2023-05-06 15:53:04 阅读:42831 作者:3227

QString在Qt的各种数据转换中起着重要的作用,熟悉QString的使用是Qt编程真正的强大力量。

虽然QString字符串包含相当多的操作符和函数,但以下是一些常见的操作符和函数。

(1) )用于组合两个字符串,(=)用于将一个字符串添加到另一个字符串的末尾。 示例:

QString str1='Welcome '; str1=str1 'to you!' ; //str1='欢迎来到you!' QString str2='Hello,'; str2 ='World!' ; //str2='Hello,World!' )2) QString:append ) )函数与“=”操作符具有相似的功能,可在字符串末尾添加其他字符串。 示例:

QString str1='Welcome '; QString str2='to '; str1.append(str2; //str1=' welcome to ' str1. append (' you!' ); //str1='欢迎来到you!' )3)另一个用于合并字符串的函数是QString:sprintf ) ),该函数支持与c库中的函数sprintf )相同的格式定义。 示例:

QString str; str.sprintf('%s”,“欢迎”); //str='welcome'str.sprintf('%s ',' to you!' ); //str=' to you!' str.sprintf('%s%s )、' Welcome )、' to you!' ); //str='欢迎来到you!' ; )4) Qt还具有使用QString:arg ) )函数的有用字符串组合。 此函数的重载可以处理很多数据类型。 此外,某些重载还具有其他参数,用于控制字段的宽度、数字基数或浮点精度。 对于QString:sprintf (),QString:arg ) )类型安全,完全支持Unicode,并且可以更改“/n”参数的顺序,从而实现最佳解决方案例如:

QString str; str=qstring('%1wasbornin%2. ' ).arg ) ' Joy ' ).arg ) 1993 ); //str='Joy was born in 1993.'; 其中:

“%1”已被“Joy”替换。

“%2”已被“1993”替换。

)5) QString还提供了组合其他字符串的方法,包括:

a. insert ) )函数:在原始字符串的特定位置插入另一个字符

b. prepend ()函数:在原始字符串的开头插入另一个字符串

c. replace ) )函数:将原始字符串的某些字符替换为指定字符串

)字符串两端的空白(空白字符包括换行符“n”、换行符“r”、选项卡“t”、空白字符:“”等)经常使用,如在获取用户输入帐户时必须删除空白字符。

a. QString:trimmed ()函数:删除字符串两端的空格

b. QString:simplified ()函数:删除字符串两端的空白字符,并使用一个空白字符“)”代替字符串中的空白字符。

例如:

QString str1=' Welcome t to n you!' ; QString str2=' Welcome t to n you!' ; str1=str1.trimmed (; //str1=' Welcome t to n you!' str2=str2.simplified (; //str2='欢迎来到you!' (7)用于分割字符串的split函数

qbytearrayarray=TCP套接字- read all (; //从套接字读取数据的QString strr=array; //将数据转换为QString格式QStringList strlist=strr.split (' ); //用空格分隔数据,并在数组中添加qstringlistlist=strlist.at(1).split ) ' # '; strlist的第一个元素用“#”分隔,存储在list中的qDebug () list.at(0) ) 0; list的第一个元素(8)打印clear以清除字符串

str='hello '; str.clear (; //之后,字符串为空的(9) indexOf函数在一个字符串中搜索另一个字符串,返回第一个出现的索引位置,如果找不到则返回-1。

QString x='sticky question '; QString y='sti '; x .索引关闭(y; //returns0x

.indexOf(y, 1); // returns 10x.indexOf(y, 10); // returns 10x.indexOf(y, 11); // returns -1

(10)fill函数用于初始化字符串或给字符串赋值,将字符串中的每个字符设置为字符ch。如果字符串大小与(默认)不同,那么字符串就会预先调整大小。

QString str = "Berlin";str.fill('z');// str == "zzzzzz"str.fill('A', 2);// str == "AA"

(11) insert函数用于在给定的索引位置插入字符串str,并返回对该字符串的引用。

QString str = "Meal";str.insert(1, QString("ontr"));// str == "Montreal"

(12) isEmpty函数用于判断字符串是否为空,并返回判断结果

QString().isEmpty(); // returns trueQString("").isEmpty(); // returns trueQString("x").isEmpty(); // returns falseQString("abc").isEmpty(); // returns false

(13) isNull效果和 isEmpty类似,如果该字符串为空,则返回true;否则返回false。

QString().isNull(); // returns trueQString("").isNull(); // returns falseQString("abc").isNull(); // returns false

(14)length函数返回该字符串中的字符数。相当于size()。
(15)resize(size)函数用于将字符串的大小设置为size大小。
如果字符串长度大于当前长度,则将字符串扩展为size长度长,并将额外的字符添加到末尾,新字符未初始化。
如果大小小于当前大小,则从末尾删除字符。

QString s = "Hello world";s.resize(5);// s == "Hello"s.resize(8);// s == "Hello???" ,?代表任何字符

(16)mid(int position, int n = -1)函数用于返回一个字符串,如果目标字符串包含从指定的位置索引开始的n个字符,则返回指定位置开始的由n个字符组成的字符串;如果位置索引超过了字符串的长度,则返回空字符串;如果从给定位置开始的字符串中有少于n个字符,或者如果n是-1(默认),函数将返回指定位置可用的所有字符。

QString x = "Nine pineapples";QString y = x.mid(5, 4); // y == "pine"QString z = x.mid(5); // z == "pineapples"

(17)prepend(const QString & str)函数将字符串str预先设置为该字符串的开头,并返回对该字符串的引用。

QString x = "ship";QString y = "air";x.prepend(y);// x == "airship"

(18)remove(int position, int n)函数用于从字符串中移除n个字符,从给定的位置开始,并返回对字符串的引用。
如果指定的位置索引在字符串中,但是position + n位于字符串的末尾,那么字符串将在指定位置被截断。

QString s = "Montreal";s.remove(1, 4);// s == "Meal"

(19)​replace(int position, int n, const QString & after)函数,用字符串替换从索引位置开始的n个字符,并返回对该字符串的引用。
注意:如果指定的位置索引在字符串中,但是position + n超出了字符串范围,那么n将会被调整到在字符串的末尾停止。

QString x = "Say yes!";QString y = "no";x.replace(4, 3, y);// x == "Say no!"

(20)setNum(int n, int base = 10)函数,将字符串设置为指定的打印值,并返回对字符串的引用。
默认值为10,必须在2到36之间。对于10以外的值,n被视为无符号整数。

QString str;str.setNum(1234); // str == "1234"

(21)转换,相信这些很好理解

doubletoDouble(bool * ok = 0) constfloattoFloat(bool * ok = 0) constinttoInt(bool * ok = 0, int base = 10) constQByteArraytoLatin1() constQByteArraytoLocal8Bit() constlongtoLong(bool * ok = 0, int base = 10) constqlonglongtoLongLong(bool * ok = 0, int base = 10) constQStringtoLower() constNSString *toNSString() constshorttoShort(bool * ok = 0, int base = 10) conststd::stringtoStdString() conststd::wstringtoStdWString() constuinttoUInt(bool * ok = 0, int base = 10) constulongtoULong(bool * ok = 0, int base = 10) constqulonglongtoULongLong(bool * ok = 0, int base = 10) constushorttoUShort(bool * ok = 0, int base = 10) constQVector<uint>toUcs4() constQStringtoUpper() constQByteArraytoUtf8() const

(22)QString与QDateTime的相互转换
1、QDateTime转为QString

QString str; QDateTime time; time = QDateTime::currentDateTime(); str = time.toString("yyyy-MM-dd hh:mm:ss");

2、QString转为QDateTime

QString str; QDateTime time; str = "2018-04-02 13:35:00"; time = QDateTime::fromString(str, "yyyy-MM-dd hh:mm:ss");

( 23 )section()函数用于拆分字符串

QString QString::section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const

这个函数把字符串看成是几个块,这些块由 sep 分隔,start 和 end 指定块号,end 默认为 –1 ,返回的是[ start, end ]内的块组成的字符串,如果 start 和 end 都是负数,那么将从字符串的后面往前面数,返回 [ -end, –start ]内的块组成的字符串。SectionFlags是一些标记,如SectionSkipEmpty表示如果两个分隔符之间是空串,那么就会跳过。

QString str; QString csv = "forename,middlename,surname,phone"; QString path = "/usr/local/ygdrg/myapp"; // First field is empty QString::SectionFlag flag = QString::SectionSkipEmpty; str = csv.section(',', 2, 2); // str == "surname" qDebug()<<str; str = path.section('/', 2, 3); // str == "local/ygdrg" qDebug()<<str; str = path.section('/', 2, 4); // str == "local/ygdrg/myapp" qDebug()<<str; str = path.section('/', -4, -2); // str == "usr/local/ygdrg" qDebug()<<str; str = path.section('/', 3, 3, flag); // str == "myapp" qDebug()<<str;

/usr/local/ygdrg/myapp按"/"拆分之后为四块 usr local ygdrg myapp
第二块到第三块,即"local/ygdrg",第二块到第四块即"local/ygdrg/myapp",第-4到第-2块【不能是第-2到第-4】,即"usr/local/ygdrg"

section还支持正则表达式:

QString line = "forenametmiddlename surname t t phone"; QRegExp sep("\s+"); str = line.section(sep, 2, 2); // s == "surname" str = line.section(sep, -3, -2); // s == "middlename surname"

( 24 )startsWith()和 endsWith()函数用于判断字符串的开头或结尾是否为某个字符/字符串

QString str = "Bananas"; str.endsWith("anas"); // returns true str.endsWith("pple"); // returns false

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。