Qt-将一个QString中的一个字符替换为多个字符



我正在构建一个文本转换器,它可以将内容转换为经过语法检查的苏格兰口音。当然,我需要把所有的";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的回答,因为他比我快

最新更新