![]() |
Eclipse SUMO - Simulation of Urban MObility
|
#include <StringTokenizer.h>
Public Member Functions | |
std::string | front () |
returns the first substring without moving the iterator More... | |
std::string | get (int pos) const |
returns the item at the given position More... | |
std::vector< std::string > | getVector () |
return vector of strings More... | |
bool | hasNext () |
returns the information whether further substrings exist More... | |
std::string | next () |
returns the next substring when it exists. Otherwise the behaviour is undefined More... | |
void | reinit () |
reinitialises the internal iterator More... | |
int | size () const |
returns the number of existing substrings More... | |
StringTokenizer () | |
default constructor More... | |
StringTokenizer (std::string tosplit) | |
constructor More... | |
StringTokenizer (std::string tosplit, int special) | |
constructor More... | |
StringTokenizer (std::string tosplit, std::string token, bool splitAtAllChars=false) | |
constructor More... | |
~StringTokenizer () | |
destructor More... | |
Static Public Attributes | |
static const int | NEWLINE = -256 |
identifier for splitting the given string at all newline characters More... | |
static const int | SPACE = 32 |
the ascii index of the highest whitespace character More... | |
static const int | TAB = 9 |
the ascii index of the tab character More... | |
static const int | WHITECHARS = -257 |
identifier for splitting the given string at all whitespace characters More... | |
Private Types | |
typedef std::vector< int > | SizeVector |
a list of positions/lengths More... | |
Private Member Functions | |
void | prepare (const std::string &tosplit, const std::string &token, bool splitAtAllChars) |
splits the first string at all occurences of the second. If the third parameter is true split at all chars given in the second More... | |
void | prepareWhitechar (const std::string &tosplit) |
splits the first string at all occurences of whitechars More... | |
Private Attributes | |
SizeVector | myLengths |
the list of substring lengths More... | |
int | myPos |
the current position in the list of substrings More... | |
SizeVector | myStarts |
the list of substring starts More... | |
std::string | myTosplit |
the string to split More... | |
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 61 of file StringTokenizer.h.
|
private |
a list of positions/lengths
Definition at line 136 of file StringTokenizer.h.
StringTokenizer::StringTokenizer | ( | ) |
default constructor
Definition at line 46 of file StringTokenizer.cpp.
StringTokenizer::StringTokenizer | ( | std::string | tosplit | ) |
constructor
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 51 of file StringTokenizer.cpp.
References prepareWhitechar().
StringTokenizer::StringTokenizer | ( | std::string | tosplit, |
std::string | token, | ||
bool | splitAtAllChars = false |
||
) |
constructor
Definition at line 57 of file StringTokenizer.cpp.
References prepare().
StringTokenizer::StringTokenizer | ( | std::string | tosplit, |
int | special | ||
) |
constructor
Definition at line 63 of file StringTokenizer.cpp.
References NEWLINE, prepare(), prepareWhitechar(), TAB, and WHITECHARS.
StringTokenizer::~StringTokenizer | ( | ) |
destructor
Definition at line 86 of file StringTokenizer.cpp.
std::string StringTokenizer::front | ( | ) |
returns the first substring without moving the iterator
Definition at line 113 of file StringTokenizer.cpp.
std::string StringTokenizer::get | ( | int | pos | ) | const |
returns the item at the given position
Definition at line 124 of file StringTokenizer.cpp.
References myLengths, myStarts, and myTosplit.
Referenced by NamedColumnsParser::get(), NIImporter_DlrNavteq::EdgesHandler::getColumn(), libsumo::Vehicle::getParameter(), LandmarkLookupTable< E, V >::LandmarkLookupTable(), SUMOVehicleParserHelper::parseAngleTimesMap(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIImporter_DlrNavteq::ProhibitionHandler::report(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), and libsumo::Vehicle::setParameter().
std::vector< std::string > StringTokenizer::getVector | ( | ) |
return vector of strings
Definition at line 191 of file StringTokenizer.cpp.
References hasNext(), next(), reinit(), and size().
Referenced by NIXMLNodesHandler::addJoinCluster(), NIXMLNodesHandler::addJoinExclusion(), Parameterised::areParametersValid(), libsumo::Person::convertTraCIStage(), GUIBaseVehicle::drawOnPos(), SUMOSAXAttributes::getIntVector(), MSDevice_SSM::getMeasuresAndThresholds(), NWWriter_DlrNavteq::getSinglePostalCode(), SUMOSAXAttributes::getStringVector(), Parameterised::isParameterValid(), SUMOXMLDefinitions::isValidListOfNetIDs(), SUMOXMLDefinitions::isValidListOfTypeID(), PCLoaderDlrNavteq::loadPolyFile(), MSDetectorFileOutput::MSDetectorFileOutput(), MSSOTLPolicy5DFamilyStimulus::MSSOTLPolicy5DFamilyStimulus(), MSTriggeredRerouter::MSTriggeredRerouter(), NIImporter_Vissim::NIVissimXMLHandler_Streckendefinition::myStartElement(), NIImporter_OpenStreetMap::EdgesHandler::myStartElement(), GNEFrameAttributesModuls::ParametersEditor::onCmdSetParameters(), Distribution_Parameterized::parse(), GNEAttributeCarrier::parse(), RGBColor::parseColor(), MSEdge::parseEdgesList(), MSRouteHandler::parseFromViaTo(), Parameterised::setParametersStr(), GNEFrameAttributesModuls::ParametersEditor::showParametersEditor(), and string2time().
bool StringTokenizer::hasNext | ( | ) |
returns the information whether further substrings exist
Definition at line 94 of file StringTokenizer.cpp.
References myPos, and myStarts.
Referenced by NLHandler::addE2Detector(), MSRouteHandler::addPersonTrip(), RORouteHandler::addPersonTrip(), ROPerson::addTrip(), NLHandler::beginEdgeParsing(), canParseVehicleClasses(), libsumo::Simulation::findIntermodalRoute(), MSDevice_SSM::getMeasuresAndThresholds(), SUMOSAXAttributesImpl_Cached::getShape(), SUMOSAXAttributesImpl_Xerces::getShape(), getVector(), MSRouteHandler::openRouteDistribution(), RORouteHandler::openRouteDistribution(), SUMOVehicleParserHelper::parseAngleTimesMap(), RORouteHandler::parseEdges(), NLHandler::parseLanes(), SUMOVehicleParameter::parsePersonModes(), GeomConvHelper::parseShapeReporting(), parseVehicleClasses(), ODMatrix::readV(), NamedColumnsParser::reinitMap(), Option_IntVector::set(), Option_StringVector::set(), MSTransportable::Stage_Trip::setArrived(), GNEFrameAttributesModuls::ParametersEditor::showParametersEditor(), and NIImporter_OpenStreetMap::usableType().
std::string StringTokenizer::next | ( | ) |
returns the next substring when it exists. Otherwise the behaviour is undefined
Definition at line 99 of file StringTokenizer.cpp.
References myLengths, myPos, myStarts, and myTosplit.
Referenced by NLHandler::addE2Detector(), NLHandler::beginEdgeParsing(), canParseVehicleClasses(), SUMOSAXAttributesImpl_Cached::getBoundary(), SUMOSAXAttributesImpl_Xerces::getBoundary(), MSDevice_SSM::getMeasuresAndThresholds(), SUMOSAXAttributesImpl_Cached::getShape(), SUMOSAXAttributesImpl_Xerces::getShape(), getVector(), PCLoaderVisum::load(), MSRouteHandler::openRouteDistribution(), RORouteHandler::openRouteDistribution(), SUMOVehicleParserHelper::parseAngleTimesMap(), GeomConvHelper::parseBoundaryReporting(), NLHandler::parseLanes(), GeomConvHelper::parseShapeReporting(), ODMatrix::parseTimeLine(), parseVehicleClasses(), ODMatrix::readO(), ODMatrix::readTime(), ODMatrix::readV(), NamedColumnsParser::reinitMap(), NIImporter_DlrNavteq::NamesHandler::report(), NIImporter_DlrNavteq::TimeRestrictionsHandler::report(), NIImporter_DlrNavteq::ProhibitionHandler::report(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), Option_IntVector::set(), Option_StringVector::set(), GNEFrameAttributesModuls::ParametersEditor::showParametersEditor(), and NIImporter_OpenStreetMap::usableType().
|
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 142 of file StringTokenizer.cpp.
References myLengths, and myStarts.
Referenced by StringTokenizer().
|
private |
splits the first string at all occurences of whitechars
Definition at line 169 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().
int StringTokenizer::size | ( | ) | const |
returns the number of existing substrings
Definition at line 137 of file StringTokenizer.cpp.
References myStarts.
Referenced by NamedColumnsParser::get(), SUMOSAXAttributesImpl_Cached::getBoundary(), SUMOSAXAttributesImpl_Xerces::getBoundary(), NIImporter_DlrNavteq::EdgesHandler::getColumn(), libsumo::Vehicle::getParameter(), getVector(), NamedColumnsParser::hasFullDefinition(), NamedColumnsParser::know(), LandmarkLookupTable< E, V >::LandmarkLookupTable(), GeomConvHelper::parseBoundaryReporting(), ODMatrix::parseTimeLine(), ODMatrix::readO(), NIImporter_DlrNavteq::NamesHandler::report(), NIImporter_DlrNavteq::ProhibitionHandler::report(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), libsumo::Vehicle::setParameter(), and NIImporter_OpenStreetMap::usableType().
|
private |
the list of substring lengths
Definition at line 148 of file StringTokenizer.h.
Referenced by front(), get(), next(), prepare(), and prepareWhitechar().
|
private |
the current position in the list of substrings
Definition at line 142 of file StringTokenizer.h.
|
private |
the list of substring starts
Definition at line 145 of file StringTokenizer.h.
Referenced by front(), get(), hasNext(), next(), prepare(), prepareWhitechar(), and size().
|
private |
the string to split
Definition at line 139 of file StringTokenizer.h.
|
static |
identifier for splitting the given string at all newline characters
Definition at line 64 of file StringTokenizer.h.
Referenced by GUIBaseVehicle::drawOnPos(), and StringTokenizer().
|
static |
the ascii index of the highest whitespace character
Definition at line 70 of file StringTokenizer.h.
Referenced by prepareWhitechar().
|
static |
the ascii index of the tab character
Definition at line 73 of file StringTokenizer.h.
Referenced by NIImporter_DlrNavteq::NamesHandler::report(), NIImporter_DlrNavteq::ProhibitionHandler::report(), NIImporter_DlrNavteq::ConnectedLanesHandler::report(), and StringTokenizer().
|
static |
identifier for splitting the given string at all whitespace characters
Definition at line 67 of file StringTokenizer.h.
Referenced by ROJTRTurnDefLoader::myStartElement(), ODMatrix::readO(), ODMatrix::readTime(), ODMatrix::readV(), NIImporter_DlrNavteq::EdgesHandler::report(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIImporter_DlrNavteq::TimeRestrictionsHandler::report(), and StringTokenizer().