Auf dieser Seite

QStringList Class

Die Klasse „QStringList“ stellt eine Liste von Zeichenketten bereit. Mehr...

Header: #include <QStringList>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Funktionen

QStringList(const QList<QString> &other)
QStringList(const QString &str)
QStringList(QList<QString> &&other)
bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.9) QStringList filter(const QLatin1StringMatcher &matcher) const
QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList filter(const QRegularExpression &re) const
(since 6.7) QStringList filter(const QStringMatcher &matcher) const
(since 6.7) QStringList filter(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(const QRegularExpression &re, qsizetype from = 0) const
QString join(const QString &separator) const
QString join(QChar separator) const
QString join(QLatin1StringView separator) const
QString join(QStringView separator) const
qsizetype lastIndexOf(QLatin1StringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QStringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(const QString &str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const
qsizetype removeDuplicates()
QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(const QRegularExpression &re, const QString &after)
QStringList &replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList &replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList operator+(const QStringList &other) const
QStringList &operator<<(const QString &str)
QStringList &operator<<(const QList<QString> &other)
QStringList &operator<<(const QStringList &other)
QStringList &operator=(const QList<QString> &other)
QStringList &operator=(QList<QString> &&other)

Ausführliche Beschreibung

QStringList ist eine „ QList “ mit einigen zusätzlichen Komfortfunktionen zur Bearbeitung von Zeichenfolgenlisten. Wie „ QList “ ist auch „QStringList“ implizit gemeinsam genutzt. Sie bietet schnellen indexbasierten Zugriff sowie schnelles Einfügen und Entfernen. Die Übergabe von Zeichenfolgenlisten als Wertparameter ist sowohl schnell als auch sicher.

Alle Funktionen von „ QList “ gelten auch für QStringList. So können Sie beispielsweise mit „ isEmpty()“ prüfen, ob die Liste leer ist, und Funktionen wie „ append()“, „ prepend()“, „ insert()“, „ replace()“, „ removeAll()“, „ removeAt()“, „ removeFirst()“, „ removeLast()“ und „ removeOne()“ aufrufen, um eine QStringList zu ändern.

Initialisierung

Der Standardkonstruktor erstellt eine leere Liste. Mit dem Konstruktor mit Initialisierungsliste können Sie eine Liste mit Elementen erstellen:

    QStringList fonts = { "Arial", "Helvetica", "Times" };

Hinzufügen von Zeichenfolgen

Zeichenfolgen können mit den Funktionen „ insert()“, „ append()“, „ operator+=()“ und „ operator<<()“ zu einer Liste hinzugefügt werden.

operator<<() kann verwendet werden, um auf bequeme Weise mehrere Elemente zu einer Liste hinzuzufügen:

    fonts << "Courier" << "Verdana";

Durchlaufen der Zeichenfolgen

Siehe „Durchlaufen von Containern“.

Bearbeitung der Zeichenfolgen

QStringList bietet mehrere Funktionen, mit denen Sie den Inhalt einer Liste bearbeiten können. Mit der Funktion „ join “ () können Sie alle Zeichenfolgen einer Zeichenfolgenliste zu einer einzigen Zeichenfolge (mit einem optionalen Trennzeichen) verketteten. Beispiel:

    QString str = fonts.join(", ");
     // str == "Arial, Helvetica, Times, Courier"

Das Argument für `join` kann ein einzelnes Zeichen oder eine Zeichenkette sein.

Um eine Zeichenkette in eine Zeichenkettenliste aufzuteilen, verwenden Sie die Funktion ` QString::split()`:

    QStringList list;
    list = str.split(',');
     // list: ["Arial", "Helvetica", "Times", "Courier"]

Das Argument für „split“ kann ein einzelnes Zeichen, eine Zeichenkette oder eine „ QRegularExpression “ sein.

Darüber hinaus können Sie mit der Funktion ` operator+()` zwei Zeichenfolgenlisten zu einer einzigen verketten. Um eine Zeichenfolgenliste zu sortieren, verwenden Sie die Funktion ` sort()`.

QString „list“ stellt außerdem die Funktion „ filter()“ zur Verfügung, mit der Sie eine neue Liste extrahieren können, die nur jene Zeichenfolgen enthält, die eine bestimmte Teilzeichenfolge enthalten (oder einem bestimmten regulären Ausdruck entsprechen):

    QStringList monospacedFonts = fonts.filter(QRegularExpression("Courier|Fixed"));

Die Funktion ` contains()` gibt an, ob die Liste eine bestimmte Zeichenkette enthält, während die Funktion ` indexOf()` den Index des ersten Vorkommens der angegebenen Zeichenkette zurückgibt. Die Funktion ` lastIndexOf()` hingegen gibt den Index des letzten Vorkommens der Zeichenkette zurück.

Schließlich ruft die Funktion ` replaceInStrings()` nacheinander für jede Zeichenkette in der Zeichenkettenliste die Funktion ` QString::replace()` auf. Beispiel:

    QStringList files;
    files << "$QTDIR/src/moc/moc.y"
          << "$QTDIR/src/moc/moc.l"
          << "$QTDIR/include/qconfig.h";

    files.replaceInStrings("$QTDIR", "/usr/lib/qt");
    // files: [ "/usr/lib/qt/src/moc/moc.y", ...]

Siehe auch „ QString “.

Dokumentation zu Mitgliedsfunktionen

QStringList::QStringList(const QList<QString> &other)

Erstellt eine Kopie von ` other`.

Dieser Vorgang dauert eine konstante Zeit, da `QStringList` implizit gemeinsam genutzt wird. Dadurch ist die Rückgabe einer `QStringList` aus einer Funktion sehr schnell. Wird eine gemeinsam genutzte Instanz geändert, wird sie kopiert (Copy-on-Write), was lineare Zeit in Anspruch nimmt.

Siehe auch ` operator=()`.

QStringList::QStringList(const QString &str)

Erstellt eine Zeichenfolgenliste, die die angegebene Zeichenfolge „ str “ enthält. Längere Listen lassen sich ganz einfach wie folgt erstellen:

    QStringList longerList = (QStringList() << str1 << str2 << str3);

Siehe auch ` append()`.

QStringList::QStringList(QList<QString> &&other)

Move-Konstrukte von QList<QString>.

Nach erfolgreicher Konstruktion ist other leer.

Dies ist eine überladene Funktion.

[noexcept] bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Gibt „ true “ zurück, wenn die Liste die Zeichenfolge „ str “ enthält; andernfalls wird „ false “ zurückgegeben.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standard), wird beim Vergleich der Zeichenfolgen die Groß-/Kleinschreibung berücksichtigt; andernfalls erfolgt der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.

Siehe auch indexOf(), lastIndexOf() und QString::contains().

[noexcept] bool QStringList::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Gibt „ true “ zurück, wenn die Liste die von „ str “ angezeigte Latin-1-Zeichenkette enthält; andernfalls wird „ false “ zurückgegeben.

Ist cs gleich Qt::CaseSensitive (Standard), wird beim Zeichenfolgenvergleich die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Dies ist eine überladene Funktion.

Siehe auch indexOf(), lastIndexOf() und QString::contains().

[noexcept] bool QStringList::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Gibt „ true “ zurück, wenn die Liste die Zeichenfolge „ str “ enthält; andernfalls wird „ false “ zurückgegeben.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standard), wird beim Vergleich der Zeichenfolgen die Groß-/Kleinschreibung beachtet; andernfalls erfolgt der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.

Dies ist eine überladene Funktion.

[since 6.9] QStringList QStringList::filter(const QLatin1StringMatcher &matcher) const

Gibt eine Liste aller Zeichenketten zurück, die mit ` matcher ` übereinstimmen (d. h. für die ` matcher.indexIn() ` einen Index >= 0 zurückgibt).

Die Verwendung von ` QLatin1StringMatcher ` kann bei der Suche in großen Listen und/oder in Listen mit langen Zeichenketten schneller sein (am besten lässt sich dies durch einen Benchmark-Test ermitteln).

Beispiel:

    QStringList veryLargeList;
    QLatin1StringMatcher matcher("Street"_L1, Qt::CaseInsensitive);
    QStringList filtered = veryLargeList.filter(matcher);

Diese Funktion wurde in Qt 6.9 eingeführt.

Siehe auch contains() und filter(const QStringMatcher &).

QStringList QStringList::filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Gibt eine Liste aller Zeichenfolgen zurück, die die Teilzeichenfolge „ str “ enthalten.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standard), wird beim Vergleich der Zeichenfolgen die Groß-/Kleinschreibung berücksichtigt; andernfalls erfolgt der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.

    QStringList list;
    list << "Bill Murray" << "John Doe" << "Bill Clinton";

    QStringList result;
    result = list.filter("Bill");
    // result: ["Bill Murray", "Bill Clinton"]

Dies entspricht

    QStringList result;
    for (const auto &str : std::as_const(list)) {
        if (str.contains("Bill"))
            result += str;
    }

Siehe auch contains().

QStringList QStringList::filter(const QRegularExpression &re) const

Gibt eine Liste aller Zeichenketten zurück, die dem regulären Ausdruck re entsprechen.

Dies ist eine überladene Funktion.

[since 6.7] QStringList QStringList::filter(const QStringMatcher &matcher) const

Gibt eine Liste aller Zeichenfolgen zurück, die mit „ matcher “ übereinstimmen (d. h. für die „ matcher.indexIn() “ einen Index >= 0 zurückgibt).

Die Verwendung von ` QStringMatcher ` kann bei der Suche in großen Listen und/oder in Listen mit langen Zeichenketten schneller sein (am besten lässt sich dies durch einen Benchmark-Test feststellen).

Beispiel:

    QStringList veryLongList;
    QStringMatcher matcher(u"Straße", Qt::CaseInsensitive);
    QStringList filtered = veryLongList.filter(matcher);

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.7 eingeführt.

Siehe auch ` contains()` und ` filter(const QLatin1StringMatcher &)`.

[since 6.7] QStringList QStringList::filter(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.7 eingeführt.

QStringList QStringList::filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Dies ist eine überladene Funktion.

[noexcept] qsizetype QStringList::indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Gibt die Indexposition des ersten Treffers von „ str “ in der Liste zurück, wobei die Suche ab der Indexposition „ from “ vorwärts erfolgt. Gibt -1 zurück, wenn kein Eintrag gefunden wurde.

Ist „ cs “ gleich „ Qt::CaseSensitive “ (Standard), wird beim Zeichenfolgenvergleich die Groß-/Kleinschreibung beachtet; andernfalls erfolgt der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.

Hinweis: Der Parameter ` cs ` wurde in Qt 6.7 hinzugefügt, d. h., diese Methoden überschreiben nun die von der Basisklasse geerbten Methoden. Zuvor hatten diese Methoden nur zwei Parameter. Diese Änderung ist quellkompatibel, und bestehender Code sollte weiterhin funktionieren.

Siehe auch ` lastIndexOf()`.

qsizetype QStringList::indexOf(const QRegularExpression &re, qsizetype from = 0) const

Gibt die Indexposition der ersten exakten Übereinstimmung von ` re ` in der Liste zurück, wobei die Suche ab der Indexposition ` from` vorwärts erfolgt. Gibt -1 zurück, wenn kein Eintrag gefunden wurde.

Dies ist eine überladene Funktion.

Siehe auch lastIndexOf().

QString QStringList::join(const QString &separator) const

Fügt alle Zeichenfolgen der Zeichenfolgenliste zu einer einzigen Zeichenfolge zusammen, wobei die einzelnen Elemente durch das angegebene Trennzeichen separator (das eine leere Zeichenfolge sein kann) getrennt werden.

Siehe auch ` QString::split()`.

QString QStringList::join(QChar separator) const

Diese Funktion überlädt die Funktion „ QStringList::join()“.

QString QStringList::join(QLatin1StringView separator) const

Diese Funktion überlädt die Funktion „ QStringList::join()“.

QString QStringList::join(QStringView separator) const

Dies ist eine überladene Funktion.

[noexcept] qsizetype QStringList::lastIndexOf(QLatin1StringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::lastIndexOf(QStringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QStringList::lastIndexOf(const QString &str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Gibt die Indexposition des letzten Treffers von „ str “ in der Liste zurück, wobei die Suche rückwärts ab der Indexposition „ from “ erfolgt. Ist „ from “ gleich -1 (Standard), beginnt die Suche beim letzten Element. Gibt -1 zurück, wenn kein Element übereinstimmt.

Ist „ cs “ gleich „ Qt::CaseSensitive “ (Standard), wird bei dem Zeichenfolgenvergleich die Groß-/Kleinschreibung beachtet; andernfalls erfolgt der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.

Hinweis: Der Parameter ` cs ` wurde in Qt 6.7 hinzugefügt, d. h., diese Methoden überladen nun die von der Basisklasse geerbten Methoden. Zuvor hatten diese Methoden nur zwei Parameter. Diese Änderung ist quellkompatibel, und bestehender Code sollte weiterhin funktionieren.

Siehe auch ` indexOf()`.

qsizetype QStringList::lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const

Gibt die Indexposition der letzten exakten Übereinstimmung von ` re ` in der Liste zurück, wobei die Suche rückwärts ab der Indexposition ` from` erfolgt. Ist ` from ` gleich -1 (Standardwert), beginnt die Suche beim letzten Element. Gibt -1 zurück, wenn kein Element übereinstimmt.

Dies ist eine überladene Funktion.

Siehe auch indexOf().

qsizetype QStringList::removeDuplicates()

Diese Funktion entfernt doppelte Einträge aus einer Liste. Die Einträge müssen nicht sortiert sein. Sie behalten ihre ursprüngliche Reihenfolge bei.

Gibt die Anzahl der entfernten Einträge zurück.

QStringList &QStringList::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Gibt eine Liste von Zeichenketten zurück, in denen der Text „ before “ an allen Stellen, an denen der Text „ before “ vorkommt, durch den Text „ after “ ersetzt wurde.

Hinweis: Wenn Sie das Argument „ before “ leer lassen, wird das Argument „ after “ vor und nach jedem Zeichen der Zeichenkette eingefügt.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standardeinstellung), wird beim Vergleich der Zeichenfolgen die Groß-/Kleinschreibung berücksichtigt; andernfalls erfolgt der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.

Beispiel:

    QStringList list;
    list << "alpha" << "beta" << "gamma" << "epsilon";
    list.replaceInStrings("a", "o");
    // list == ["olpho", "beto", "gommo", "epsilon"]

Siehe auch ` QString::replace()`.

QStringList &QStringList::replaceInStrings(const QRegularExpression &re, const QString &after)

Ersetzt jedes Vorkommen des regulären Ausdrucks „ re “ in jeder Zeichenkette der Zeichenkettenliste durch „ after “. Gibt eine Referenz auf die Zeichenkettenliste zurück.

Beispiel:

    QStringList list;
    list << "alpha" << "beta" << "gamma" << "epsilon";
    list.replaceInStrings(QRegularExpression("^a"), "o");
    // list == ["olpha", "beta", "gamma", "epsilon"]

Bei regulären Ausdrücken, die Erfassungsgruppen enthalten, werden Vorkommen von \1, \2, ... in „ after “ durch die von der entsprechenden Erfassungsgruppe erfasste Zeichenfolge ersetzt.

Beispiel:

    QStringList list;
    list << "Bill Clinton" << "Murray, Bill";
    list.replaceInStrings(QRegularExpression("^(.*), (.*)$"), "\\2 \\1");
    // list == ["Bill Clinton", "Bill Murray"]

Dies ist eine überladene Funktion.

QStringList &QStringList::replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Dies ist eine überladene Funktion.

QStringList &QStringList::replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Dies ist eine überladene Funktion.

QStringList &QStringList::replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Dies ist eine überladene Funktion.

void QStringList::sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)

Sortiert die Liste der Zeichenfolgen in aufsteigender Reihenfolge.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standardeinstellung), wird beim Vergleich der Zeichenfolgen die Groß-/Kleinschreibung berücksichtigt; andernfalls wird der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung durchgeführt.

Die Sortierung erfolgt mithilfe des STL-Algorithmus `std::sort()`, der eine durchschnittliche lineare logarithmische Laufzeit aufweist, d. h. `O(n log n)`.

Wenn Sie Ihre Zeichenfolgen in einer beliebigen Reihenfolge sortieren möchten, sollten Sie die Klasse „ QMap “ in Betracht ziehen. Sie könnten beispielsweise eine ` QMap` <`QString`, ` QString`> verwenden, um eine sortierung ohne Berücksichtigung der Groß-/Kleinschreibung zu erstellen (z. B. mit den Schlüsseln als Kleinbuchstabenversionen der Zeichenfolgen und den Werten als Zeichenfolgen), oder eine ` QMap` <`int`, ` QString`>, um die Zeichenfolgen nach einem ganzzahligen Index zu sortieren.

QStringList QStringList::operator+(const QStringList &other) const

Gibt eine Zeichenfolgenliste zurück, die aus der Verkettung dieser Zeichenfolgenliste mit der Zeichenfolgenliste „ other “ besteht.

Siehe auch „ append()“.

QStringList &QStringList::operator<<(const QString &str)

Fügt die angegebene Zeichenkette „ str “ an diese Zeichenkettensammlung an und gibt eine Referenz auf die Zeichenkettensammlung zurück.

Siehe auch ` append()`.

QStringList &QStringList::operator<<(const QList<QString> &other)

Fügt die Zeichenfolgenliste „ other “ an die Zeichenfolgenliste an und gibt eine Referenz auf die letztere Zeichenfolgenliste zurück.

Dies ist eine überladene Funktion.

QStringList &QStringList::operator<<(const QStringList &other)

Fügt die Zeichenfolgenliste „ other “ an die Zeichenfolgenliste an und gibt eine Referenz auf die letztere Zeichenfolgenliste zurück.

Dies ist eine überladene Funktion.

QStringList &QStringList::operator=(const QList<QString> &other)

Kopiert den Zuweisungsoperator von QList<QString>. Weist dieser Zeichenfolgenliste die Liste der Zeichenfolgen aus other zu.

Nach der Operation sind other und *this identisch.

QStringList &QStringList::operator=(QList<QString> &&other)

Zuweisungsoperator „move“ von QList<QString>. Verschiebt die Zeichenfolgenliste other in diese Zeichenfolgenliste.

Nach der Operation ist other leer.

Dies ist eine überladene Funktion.

Verwandte Nicht-Mitglieder

[alias] QMutableStringListIterator

Die Typdefinition ` QStringListIterator ` stellt einen nicht-konstanten Iterator im Java-Stil für ` QStringList` bereit.

QStringList bietet sowohl Iteratoren im Java-Stil als auch Iteratoren im STL-Stil. Der nicht-konstante Iterator im Java-Stil ist lediglich eine Typdefinition für ` QMutableListIterator<QString>`.

Siehe auch „ QStringListIterator “ und „ QStringList::iterator “.

[alias] QStringListIterator

Die Typdefinition „QStringListIterator“ stellt einen const-Iterator im Java-Stil für „ QStringList “ bereit.

QStringList bietet sowohl Iteratoren im Java-Stil als auch Iteratoren im STL-Stil. Der konstante Iterator im Java-Stil ist lediglich eine Typdefinition für ` QListIterator<QString>`.

Siehe auch „ QMutableStringListIterator “ und „ QStringList::const_iterator “.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.