我正在构建一个文本转换器,它可以将内容转换为经过语法检查的苏格兰口音。当然,我需要把所有的";u〃;s变为";oo";s.在任何以g结尾的单词中去掉g。我想知道是否有一种方法可以用QString中的多个字符替换一个字符。
到目前为止,我有代码,它将一个字符转换为另一个字符。
void MainWindow::on_replaceU_clicked()
QString example = "summarize";
QString inputTextScottish = example.replace(QChar('u'), QChar('o'), Qt::CaseInsensitive);
qDebug() << inputTextScottish; //Output: somarize
我要找的,可能会做这样的事情。
example.replace(QChar('u'), QChar('oo'), Qt::CaseInsensitive); //Output: soomarize
如果需要更多信息来解决这个问题,请告诉我。这是基于QString文档。
缩写:
void MainWindow::on_replaceU_clicked()
QString example = "summarize"; // Better: use QStringLiteral("summarize")
QString inputTextScottish = example.replace(QChar('u'), QLatin1String("oo"), Qt::CaseInsensitive);
qDebug() << inputTextScottish; // Output: soomarize
更长
为什么要使用QStringLiteral((?
因为它在编译时初始化字符串,这比在运行时生成快得多
为什么要使用QLatin1String((?
简而言之:它比QString或QStringLiteral快得多(如果QLatin1String((过载(。
你可以接受@perivesta的回答,因为他比我快