Poco

class StringTokenizer

Library: Foundation
Package: Core
Header: Poco/StringTokenizer.h

Description

A simple tokenizer that splits a string into tokens, which are separated by separator characters. An iterator is used to iterate over all tokens.

Member Summary

Member Functions: begin, count, end, find, has, operator [], replace

Types

Iterator

typedef TokenVec::const_iterator Iterator;

TokenVec

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

Enumerations

Options

TOK_IGNORE_EMPTY = 1

ignore empty tokens

TOK_TRIM = 2

remove leading and trailing whitespace from tokens

Constructors

StringTokenizer

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:

An empty token at the end of str is always ignored. For example, a StringTokenizer with the following arguments:

StringTokenizer(",ab,cd,", ",");

will produce three tokens, "", "ab" and "cd".

Destructor

~StringTokenizer

~StringTokenizer();

Destroys the tokenizer.

Member Functions

begin inline

Iterator begin() const;

count inline

std::size_t count() const;

Returns the total number of tokens.

count

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

Returns the number of tokens equal to the specified token.

end inline

Iterator end() const;

find

std::size_t find(
    const std::string & token,
    std::size_t 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.

has

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

Returns true if token exists, false otherwise.

operator []

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.

operator []

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

Returns reference to the index'th token. Throws a RangeException if the index is out of range.

replace

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

Starting at position pos, replaces all subsequent tokens having value equal to oldToken with newToken. Returns the number of modified tokens.