SUMO - Simulation of Urban MObility
StringTokenizer Class Reference

#include <StringTokenizer.h>

Collaboration diagram for StringTokenizer:
Collaboration graph

Public Member Functions

std::string front ()
 
std::string get (int pos) const
 
std::vector< std::string > getVector ()
 
bool hasNext ()
 
std::string next ()
 
void reinit ()
 
int 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. More...
 
 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. More...
 
 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. More...
 
 ~StringTokenizer ()
 

Static Public Attributes

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

Private Types

typedef std::vector< int > 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
 
int 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

§ SizeVector

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

a list of positions/lengths

Definition at line 143 of file StringTokenizer.h.

Constructor & Destructor Documentation

§ StringTokenizer() [1/4]

StringTokenizer::StringTokenizer ( )
inline

default constructor

Definition at line 84 of file StringTokenizer.h.

References front(), getVector(), hasNext(), next(), prepare(), prepareWhitechar(), reinit(), size(), and ~StringTokenizer().

§ StringTokenizer() [2/4]

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() [3/4]

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() [4/4]

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::~StringTokenizer ( )

destructor

Definition at line 87 of file StringTokenizer.cpp.

Referenced by StringTokenizer().

Member Function Documentation

§ front()

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.

Referenced by StringTokenizer().

§ get()

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

returns the item at the given position

Definition at line 120 of file StringTokenizer.cpp.

References myLengths, myStarts, and myTosplit.

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

§ getVector()

§ hasNext()

§ next()

§ prepare()

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().

§ prepareWhitechar()

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().

§ reinit()

void StringTokenizer::reinit ( )

reinitialises the internal iterator

Definition at line 89 of file StringTokenizer.cpp.

References myPos.

Referenced by getVector(), and StringTokenizer().

§ size()

Field Documentation

§ myLengths

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().

§ myPos

int 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().

§ myStarts

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().

§ myTosplit

std::string StringTokenizer::myTosplit
private

the string to split

Definition at line 146 of file StringTokenizer.h.

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

§ NEWLINE

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().

§ SPACE

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().

§ WHITECHARS

const int StringTokenizer::WHITECHARS = -257
static

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