SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
StringTokenizer Class Reference

#include <StringTokenizer.h>

Public Member Functions

std::string front ()
std::string get (size_t pos) const
std::vector< std::string > getVector ()
bool hasNext ()
std::string next ()
void reinit ()
size_t size () const
 StringTokenizer ()
 StringTokenizer (std::string tosplit)
 constructor same as StringTokenizer(tosplit, StringTokenizer.WHITECHARS) tosplit is the string to split into substrings. If the string between two split positions is empty, it will not be returned.
 StringTokenizer (std::string tosplit, std::string token, bool splitAtAllChars=false)
 constructor the first string will be split at the second string's occurences. If the optional third parameter is true, the string will be split whenever a char from the second string occurs. If the string between two split positions is empty, it will nevertheless be returned.
 StringTokenizer (std::string tosplit, int special)
 constructor When StringTokenizer.NEWLINE is used as second parameter, the string will be split at all occurences of a newline character (0x0d / 0x0a) When StringTokenizer.WHITECHARS is used as second parameter, the string will be split at all characters below 0x20 (SPACE) All other ints specified as second parameter are casted int o a char at which the string will be splitted.
 ~StringTokenizer ()

Static Public Attributes

static const int NEWLINE = -256
static const int SPACE = 32
static const int WHITECHARS = -257

Private Types

typedef std::vector< size_t > SizeVector

Private Member Functions

void prepare (const std::string &tosplit, const std::string &token, bool splitAtAllChars)
void prepareWhitechar (const std::string &tosplit)

Private Attributes

SizeVector myLengths
size_t myPos
SizeVector myStarts
std::string myTosplit

Detailed Description

StringTokenizer A class similar to the StringTokenizer from Java. It splits a string at the given string or character (or one of the special cases NEWLINE or WHITECHAR) and allows to iterate over the so generated substrings.

The normal usage is like this:

StringTokenizer st(CString("This is a line"), ' ');
while(st.hasNext())
   cout << st.next() << endl;

This would generate the output:

This
is
a
line

There is something to know about the behaviour: When using WHITECHAR, a list of whitechars occuring in the string to split is regarded as a single divider. All other parameter will use multiple occurences of operators as a list of single divider and the string between them will have a length of zero.

Definition at line 70 of file StringTokenizer.h.

Member Typedef Documentation

typedef std::vector<size_t> StringTokenizer::SizeVector
private

a list of positions/lengths

Definition at line 143 of file StringTokenizer.h.

Constructor & Destructor Documentation

StringTokenizer::StringTokenizer ( )
inline

default constructor

Definition at line 84 of file StringTokenizer.h.

StringTokenizer::StringTokenizer ( std::string  tosplit)

constructor same as StringTokenizer(tosplit, StringTokenizer.WHITECHARS) tosplit is the string to split into substrings. If the string between two split positions is empty, it will not be returned.

Definition at line 55 of file StringTokenizer.cpp.

References prepareWhitechar().

StringTokenizer::StringTokenizer ( std::string  tosplit,
std::string  token,
bool  splitAtAllChars = false 
)

constructor the first string will be split at the second string's occurences. If the optional third parameter is true, the string will be split whenever a char from the second string occurs. If the string between two split positions is empty, it will nevertheless be returned.

Definition at line 61 of file StringTokenizer.cpp.

References prepare().

StringTokenizer::StringTokenizer ( std::string  tosplit,
int  special 
)

constructor When StringTokenizer.NEWLINE is used as second parameter, the string will be split at all occurences of a newline character (0x0d / 0x0a) When StringTokenizer.WHITECHARS is used as second parameter, the string will be split at all characters below 0x20 (SPACE) All other ints specified as second parameter are casted int o a char at which the string will be splitted.

Definition at line 67 of file StringTokenizer.cpp.

References NEWLINE, prepare(), prepareWhitechar(), and WHITECHARS.

StringTokenizer::~StringTokenizer ( )

destructor

Definition at line 87 of file StringTokenizer.cpp.

Member Function Documentation

std::string StringTokenizer::front ( )

returns the first substring without moving the iterator

Definition at line 110 of file StringTokenizer.cpp.

References myLengths, myStarts, and myTosplit.

std::string StringTokenizer::get ( size_t  pos) const

returns the item at the given position

Definition at line 120 of file StringTokenizer.cpp.

References myLengths, myStarts, and myTosplit.

Referenced by NIImporter_DlrNavteq::EdgesHandler::getColumn(), and NIImporter_DlrNavteq::TrafficlightsHandler::report().

void StringTokenizer::prepare ( const std::string &  tosplit,
const std::string &  token,
bool  splitAtAllChars 
)
private

splits the first string at all occurences of the second. If the third parameter is true split at all chars given in the second

Definition at line 137 of file StringTokenizer.cpp.

References myLengths, and myStarts.

Referenced by StringTokenizer().

void StringTokenizer::prepareWhitechar ( const std::string &  tosplit)
private

splits the first string at all occurences of whitechars

Definition at line 163 of file StringTokenizer.cpp.

References myLengths, myStarts, and SPACE.

Referenced by StringTokenizer().

void StringTokenizer::reinit ( )

reinitialises the internal iterator

Definition at line 89 of file StringTokenizer.cpp.

References myPos.

Referenced by getVector().

Field Documentation

SizeVector StringTokenizer::myLengths
private

the list of substring lengths

Definition at line 155 of file StringTokenizer.h.

Referenced by front(), get(), next(), prepare(), and prepareWhitechar().

size_t StringTokenizer::myPos
private

the current position in the list of substrings

Definition at line 149 of file StringTokenizer.h.

Referenced by hasNext(), next(), and reinit().

SizeVector StringTokenizer::myStarts
private

the list of substring starts

Definition at line 152 of file StringTokenizer.h.

Referenced by front(), get(), hasNext(), next(), prepare(), prepareWhitechar(), and size().

std::string StringTokenizer::myTosplit
private

the string to split

Definition at line 146 of file StringTokenizer.h.

Referenced by front(), get(), and next().

const int StringTokenizer::NEWLINE = -256
static

identifier for splitting the given string at all newline characters

Definition at line 73 of file StringTokenizer.h.

Referenced by StringTokenizer().

const int StringTokenizer::SPACE = 32
static

the ascii index of the highest whitespace character

Definition at line 80 of file StringTokenizer.h.

Referenced by prepareWhitechar().

const int StringTokenizer::WHITECHARS = -257
static

The documentation for this class was generated from the following files: