class Poco::StringTokenizer

Overview

A simple tokenizer that splits a string into tokens, which are separated by separator characters. More…

#include <StringTokenizer.h>

class StringTokenizer
{
public:
    // typedefs

    typedef std::vector<std::string> TokenVec;
    typedef TokenVec::const_iterator Iterator;

    // enums

    enum Options;

    // construction

    StringTokenizer(
        const std::string& str,
        const std::string& separators,
        int options = 0
        );

    // methods

    Iterator
    begin() const;

    Iterator
    end() const;

    const std::string&
    operator[](std::size_t index) const;

    std::string&
    operator[](std::size_t index);

    bool
    has(const std::string& token) const;

    std::string::size_type
    find(
        const std::string& token,
        std::string::size_type pos = 0
        ) const;

    std::size_t
    replace(
        const std::string& oldToken,
        const std::string& newToken,
        std::string::size_type pos = 0
        );

    std::size_t
    count() const;

    std::size_t
    count(const std::string& token) const;
};

Detailed Documentation

A simple tokenizer that splits a string into tokens, which are separated by separator characters.

An iterator is used to iterate over all tokens.

Construction

StringTokenizer(
    const std::string& str,
    const std::string& separators,
    int options = 0
    )

Splits the given string into tokens.

The tokens are expected to be separated by one of the separator characters given in separators. Additionally, options can be specified:

* TOK_IGNORE_EMPTY: empty tokens are ignored
* TOK_TRIM: trailing and leading whitespace is removed from tokens.

Methods

const std::string&
operator[](std::size_t index) const

Returns const reference the index’th token.

Throws a RangeException if the index is out of range.

std::string&
operator[](std::size_t index)

Returns reference to the index’th token.

Throws a RangeException if the index is out of range.

bool
has(const std::string& token) const

Returns true if token exists, false otherwise.

std::string::size_type
find(
    const std::string& token,
    std::string::size_type pos = 0
    ) const

Returns the index of the first occurence of the token starting at position pos.

Throws a NotFoundException if the token is not found.

std::size_t
replace(
    const std::string& oldToken,
    const std::string& newToken,
    std::string::size_type pos = 0
    )

Starting at position pos, replaces all subsequent tokens having value equal to oldToken with newToken.

Returns the number of modified tokens.

std::size_t
count() const

Returns the total number of tokens.

std::size_t
count(const std::string& token) const

Returns the number of tokens equal to the specified token.