Qt. получить часть QString - PullRequest
       35

Qt. получить часть QString

61 голосов
/ 28 сентября 2011

Я хочу получить QString от другого QString, когда я знаю необходимые индексы.Например: Основная строка: "Это строка" .Я хочу создать новый QString из первых 5 символов и получить "This" .
input: первый и последний номер символа.
output: новый QString.

Как его создать?

PS Не только первые несколько букв, а также от середины строки, например, от 5 до 8.

Ответы [ 2 ]

96 голосов
/ 28 сентября 2011

Если вам не нужно изменять подстроку, вы можете использовать QStringRef. Класс QStringRef - это оболочка только для чтения вокруг существующего QString, которая ссылается на подстроку в существующей строке. Это дает гораздо лучшую производительность, чем создание нового объекта QString, содержащего подстроку. Э.Г.

QString myString("This is a string");
QStringRef subString(&myString, 5, 2); // subString contains "is"

Если вам нужно изменить подстроку, то left(), mid() и right() сделают то, что вам нужно ...

QString myString("This is a string");
QString subString = myString.mid(5,2); // subString contains "is"
subString.append("n't"); // subString contains "isn't"
42 голосов
/ 28 сентября 2011

Используйте функцию left:

QString yourString = "This is a string";
QString leftSide = yourString.left(5);
qDebug() << leftSide; // output "This "

Также посмотрите на mid(), если вы хотите больше контроля.

...