Qt

[QString] 특정 문자 문자열 자르기, 제거, 검색

sangjun-pro 2022. 4. 25. 12:44

1. 문자열 자르기 ( split )

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString line = "123,456,789,abc,def,gh";
    QStringList fields = line.split(","); // , 로 구분
    for(int idx = 0; idx < fields.count(); idx++)
    {
        qDebug() << fields[idx];
    }
    return a.exec();
}

- 결과

"123"
"456"
"789"
"abc"
"def"
"gh"

 

2. 특정 문자 제거,치환 ( replace )

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString line = "123,45@6,789,a*bc,def,gh";

    line = line.replace(("*"),""); // * 제거
    line = line.replace(("@"),""); // @ 제거
    QStringList fields = line.split(",");

    qDebug() << line;
    for(int idx = 0; idx < fields.count(); idx++)
    {
        qDebug() << fields[idx];
    }
    return a.exec();
}

- 결과

"123,456,789,abc,def,gh"
"123"
"456"
"789"
"abc"
"def"
"gh"

-> @ 를 !로 치환

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString line = "123,45@6,789,a*bc,def,gh";

    line = line.replace(("*"),"");
    line = line.replace(("@"),"!"); // 치환 문자 !
    QStringList fields = line.split(",");
    qDebug() << line;
    for(int idx = 0; idx < fields.count(); idx++)
    {
        qDebug() << fields[idx];
    }
    return a.exec();
}

- 결과

"123,45!6,789,abc,def,gh"
"123"
"45!6" // @ -> ! 료 치환
"789"
"abc"
"def"
"gh"

 

3. 특정 문자 포함 여부 확인 ( contains )

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString line = "123,45@6,789,a*bc,def,gh";

    line = line.replace(("*"),"");
    line = line.replace(("@"),"");
    QStringList fields = line.split(",");
    qDebug() << line;
    for(int idx = 0; idx < fields.count(); idx++)
    {
        qDebug() << fields[idx];
        if(fields[idx].contains("89")) qDebug() << "CONTAINS 89";  // 포함 여부 확인
    }
    return a.exec();
}

- 결과

"123,456,789,abc,def,gh"
"123"
"456"
"789"
CONTAINS 89
"abc"
"def"
"gh"

'Qt' 카테고리의 다른 글

[macOS] Qt 배포 하는 방법  (0) 2022.06.09
[Windows] Qt 배포 하는 방법  (0) 2022.04.25
[QLineEdit] input mask 설정 ( Hex, 숫자 )  (0) 2022.04.12
Qt 6.2 환경 구축 ( 맥 , 윈도우 )  (0) 2022.04.04