Qt4:QStringを使う


Qt4:百の定石


QString は文字列を扱うクラスです。組み合わせて使うと非常に便利です。

  • 代入する。
    • 直接
      QString str = "hogehoge" ;
    • sprintf()関数を使って、
      QString s;
      s.sprintf( "%2d %2d", date.month(), date.day) ;
    • arg()を使って
      QString s = QString( "file %1 of %2: %3" ) .arg(i) .arg(f).arg(str) ;    
    • QTextStream?を使って、
      QString str;
      QTextStream( &str ) << "Apollo "  << x;
  • 付け足す。
    QString s = "Hello Apple!" ;
    s.append(" Farewell  ") ;
    s += "Windows" ;
  • 比較する。
    • compare()を使う
      int a = QString::compare( "def", "abc" );   // a > 0
      int b = QString::compare( "abc", "def" );   // b < 0
      int c = QString::compare( "abc", "abc" );   // c == 0
    • operatorも各種使えます。 ==, !=, <, >, <=, >=
  • 文字(列)を見つける。
    QString string("bananas");
    int i =string.indexOf( "ana" ) ;         // i == 1
    int i = string.lastIndexOf( "ana" );      // i == 3
  • 引き抜く。
    QString s = "Pineapple";
    QString t = s.left( 4 );  // t == "Pine"
    QString u = s.mid(4, 5); // "apple"
    QString v = s.right(5);  // "apple"
  • 置換する。
    QString str = "colour behaviour flavour neighbour";
    str.replace(QString("ou"), QString("o"));
    // str == "color behavior flavor neighbor"
  • 満たす。
    QString s = "apple";
    QString t = s.leftJustified(8, '.');    // t == "apple..."
    QString t = s.rightJustified(8, '.');    // t == "...apple"
  • 分離する。空白や区切り文字で分離する場合
    QStringList strList = str.split(QRegExp("??W+"), QString::SkipEmptyParts) ;
  • アスキー文字列に直す。
    QString str = "asciiiiiiii" ;
    char* s=new char[str.length()] ;
    sprintf(s, "%s", str.toAscii().data() ) ;