class Poco::NumberParser
Overview
The NumberParser class provides static methods for parsing numbers out of strings. More…
#include <NumberParser.h> class NumberParser { public: // fields static const unsigned short NUM_BASE_OCT; static const unsigned short NUM_BASE_DEC; static const unsigned short NUM_BASE_HEX; // methods static int parse( const std::string& s, char thousandSeparator = ',' ); static bool tryParse( const std::string& s, int& value, char thousandSeparator = ',' ); static unsigned parseUnsigned( const std::string& s, char thousandSeparator = ',' ); static bool tryParseUnsigned( const std::string& s, unsigned& value, char thousandSeparator = ',' ); static unsigned parseHex(const std::string& s); static bool tryParseHex( const std::string& s, unsigned& value ); static unsigned parseOct(const std::string& s); static bool tryParseOct( const std::string& s, unsigned& value ); static double parseFloat( const std::string& s, char decimalSeparator = '.', char thousandSeparator = ',' ); static bool tryParseFloat( const std::string& s, double& value, char decimalSeparator = '.', char thousandSeparator = ',' ); static bool parseBool(const std::string& s); static bool tryParseBool( const std::string& s, bool& value ); };
Detailed Documentation
The NumberParser class provides static methods for parsing numbers out of strings.
Note that leading or trailing whitespace is not allowed in the string. Poco::trim() or Poco::trimInPlace() can be used to remove leading or trailing whitespace.
Methods
static int parse( const std::string& s, char thousandSeparator = ',' )
Parses an integer value in decimal notation from the given string.
Throws a SyntaxException if the string does not hold a number in decimal notation.
static bool tryParse( const std::string& s, int& value, char thousandSeparator = ',' )
Parses an integer value in decimal notation from the given string.
Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.
static unsigned parseUnsigned( const std::string& s, char thousandSeparator = ',' )
Parses an unsigned integer value in decimal notation from the given string.
Throws a SyntaxException if the string does not hold a number in decimal notation.
static bool tryParseUnsigned( const std::string& s, unsigned& value, char thousandSeparator = ',' )
Parses an unsigned integer value in decimal notation from the given string.
Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.
static unsigned parseHex(const std::string& s)
Parses an integer value in hexadecimal notation from the given string.
Throws a SyntaxException if the string does not hold a number in hexadecimal notation.
static bool tryParseHex( const std::string& s, unsigned& value )
Parses an unsigned integer value in hexadecimal notation from the given string.
Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.
static unsigned parseOct(const std::string& s)
Parses an integer value in octal notation from the given string.
Throws a SyntaxException if the string does not hold a number in hexadecimal notation.
static bool tryParseOct( const std::string& s, unsigned& value )
Parses an unsigned integer value in octal notation from the given string.
Returns true if a valid integer has been found, false otherwise. If parsing was not successful, value is undefined.
static double parseFloat( const std::string& s, char decimalSeparator = '.', char thousandSeparator = ',' )
Parses a double value in decimal floating point notation from the given string.
Throws a SyntaxException if the string does not hold a floating-point number in decimal notation.
static bool tryParseFloat( const std::string& s, double& value, char decimalSeparator = '.', char thousandSeparator = ',' )
Parses a double value in decimal floating point notation from the given string.
Returns true if a valid floating point number has been found, false otherwise. If parsing was not successful, value is undefined.
static bool parseBool(const std::string& s)
Parses a bool value in decimal or string notation from the given string.
Valid forms are: “0”, “1”, “true”, “on”, false”, “yes”, “no”, “off”. String forms are NOT case sensitive. Throws a SyntaxException if the string does not hold a valid bool number
static bool tryParseBool( const std::string& s, bool& value )
Parses a bool value in decimal or string notation from the given string.
Valid forms are: “0”, “1”, “true”, “on”, false”, “yes”, “no”, “off”. String forms are NOT case sensitive. Returns true if a valid bool number has been found, false otherwise. If parsing was not successful, value is undefined.