OpenMS
|
A more convenient string class. More...
#include <OpenMS/DATASTRUCTURES/String.h>
Public Types | |
Type definitions | |
enum | QuotingMethod { NONE , ESCAPE , DOUBLE } |
How to handle embedded quotes when quoting strings. More... | |
typedef iterator | Iterator |
Iterator. More... | |
typedef const_iterator | ConstIterator |
Const Iterator. More... | |
typedef reverse_iterator | ReverseIterator |
Reverse Iterator. More... | |
typedef const_reverse_iterator | ConstReverseIterator |
Const reverse Iterator. More... | |
typedef size_type | SizeType |
UInt type. More... | |
Public Member Functions | |
Constructors | |
String () | |
Default constructor. More... | |
String (const String &)=default | |
Copy constructor. More... | |
String (String &&)=default | |
Move constructor. More... | |
String (const std::string &s) | |
Constructor from std::string. More... | |
String (const std::string_view &sv) | |
Constructor from std::string_view. More... | |
String (const QString &s) | |
Constructor from Qt QString. More... | |
String (const char *s) | |
Constructor from char*. More... | |
String (const char c) | |
Constructor from a char. More... | |
String (const char *s, SizeType length) | |
Constructor from char* (only length characters) More... | |
String (size_t len, char c) | |
Constructor from char (repeats the char len times) More... | |
template<class InputIterator > | |
String (InputIterator first, InputIterator last) | |
Constructor from a char range. More... | |
String (int i) | |
Constructor from an integer. More... | |
String (unsigned int i) | |
Constructor from an unsigned integer. More... | |
String (short int i) | |
Constructor from an integer. More... | |
String (short unsigned int i) | |
Constructor from an unsigned integer. More... | |
String (long int i) | |
Constructor from an integer. More... | |
String (long unsigned int i) | |
Constructor from an unsigned integer. More... | |
String (long long unsigned int i) | |
Constructor from an unsigned integer. More... | |
String (long long signed int i) | |
Constructor from an unsigned integer. More... | |
String (float f, bool full_precision=true) | |
Constructor from float (full_precision controls number of fractional digits, 3 digits when false, and 6 when true) More... | |
String (double d, bool full_precision=true) | |
Constructor from double (full_precision controls number of fractional digits, 3 digits when false, and 15 when true) More... | |
String (long double ld, bool full_precision=true) | |
Constructor from long double (full_precision controls number of fractional digits, 3 digits when false, and 15 when true) More... | |
String (const DataValue &d, bool full_precision=true) | |
Constructor from DataValue (full_precision controls number of fractional digits for all double types or lists of double, 3 digits when false, and 15 when true) More... | |
Predicates | |
bool | hasPrefix (const String &string) const |
true if String begins with string , false otherwise More... | |
bool | hasSuffix (const String &string) const |
true if String ends with string , false otherwise More... | |
bool | hasSubstring (const String &string) const |
true if String contains the string , false otherwise More... | |
bool | has (Byte byte) const |
true if String contains the byte , false otherwise More... | |
String & | operator= (const String &)=default |
Assignment operator. More... | |
String & | operator= (String &&) &=default |
Move assignment operator. More... | |
Accessors | |
String | prefix (SizeType length) const |
returns the prefix of length length More... | |
String | suffix (SizeType length) const |
returns the suffix of length length More... | |
String | prefix (Int length) const |
returns the prefix of length length More... | |
String | suffix (Int length) const |
returns the suffix of length length More... | |
String | prefix (char delim) const |
returns the prefix up to the first occurrence of char delim (excluding it) More... | |
String | suffix (char delim) const |
returns the suffix up to the last occurrence of char delim (excluding it) More... | |
String | substr (size_t pos=0, size_t n=npos) const |
Wrapper for the STL substr() method. Returns a String object with its contents initialized to a substring of the current object. More... | |
String | chop (Size n) const |
Returns a substring where n characters were removed from the end of the string. More... | |
Mutators | |
All these methods return a reference to the string in order to make them chainable | |
String & | reverse () |
inverts the direction of the string More... | |
String & | trim () |
removes whitespaces (space, tab, line feed, carriage return) at the beginning and the end of the string More... | |
bool | isQuoted (char q='"') |
Checks if the string is wrapped in quotation marks. More... | |
String & | quote (char q='"', QuotingMethod method = ESCAPE) |
Wraps the string in quotation marks. More... | |
String & | unquote (char q='"', QuotingMethod method = ESCAPE) |
Reverses changes made by the quote method. More... | |
String & | simplify () |
merges subsequent whitespaces to one blank character More... | |
String & | fillLeft (char c, UInt size) |
Adds c on the left side until the size of the string is size . More... | |
String & | fillRight (char c, UInt size) |
Adds c on the right side until the size of the string is size . More... | |
String & | toUpper () |
Converts the string to uppercase. More... | |
String & | toLower () |
Converts the string to lowercase. More... | |
String & | firstToUpper () |
Converts the first letter of the string to uppercase. More... | |
String & | substitute (char from, char to) |
Replaces all occurrences of the character from by the character to . More... | |
String & | substitute (const String &from, const String &to) |
Replaces all occurrences of the string from by the string to . More... | |
String & | remove (char what) |
Remove all occurrences of the character what . More... | |
String & | ensureLastChar (char end) |
Makes sure the string ends with the character end . More... | |
String & | removeWhitespaces () |
removes whitespaces (space, tab, line feed, carriage return) More... | |
Converters | |
Int | toInt () const |
Conversion to Int. More... | |
Int32 | toInt32 () const |
Conversion to Int32. More... | |
Int64 | toInt64 () const |
Conversion to Int64. More... | |
float | toFloat () const |
Conversion to float. More... | |
double | toDouble () const |
Conversion to double. More... | |
QString | toQString () const |
Conversion to Qt QString. More... | |
Sum operator overloads | |
String | operator+ (int i) const |
Sum operator for an integer. More... | |
String | operator+ (unsigned int i) const |
Sum operator for an unsigned integer. More... | |
String | operator+ (short int i) const |
Sum operator for an integer. More... | |
String | operator+ (short unsigned int i) const |
Sum operator for an unsigned integer. More... | |
String | operator+ (long int i) const |
Sum operator for an integer. More... | |
String | operator+ (long unsigned int i) const |
Sum operator for an unsigned integer. More... | |
String | operator+ (long long unsigned int i) const |
Sum operator for an unsigned integer. More... | |
String | operator+ (float f) const |
Sum operator for float. More... | |
String | operator+ (double d) const |
Sum operator for double. More... | |
String | operator+ (long double ld) const |
Sum operator for long double. More... | |
String | operator+ (char c) const |
Sum operator for char. More... | |
String | operator+ (const char *s) const |
Sum operator for char*. More... | |
String | operator+ (const String &s) const |
Sum operator for String. More... | |
String | operator+ (const std::string &s) const |
Sum operator for std::string. More... | |
Static Public Attributes | |
static const String | EMPTY |
Empty string for comparisons. More... | |
Append operator overloads | |
String & | operator+= (int i) |
Sum operator for an integer. More... | |
String & | operator+= (unsigned int i) |
Sum operator for an unsigned integer. More... | |
String & | operator+= (short int i) |
Sum operator for an integer. More... | |
String & | operator+= (short unsigned int i) |
Sum operator for an unsigned integer. More... | |
String & | operator+= (long int i) |
Sum operator for an integer. More... | |
String & | operator+= (long unsigned int i) |
Sum operator for an unsigned integer. More... | |
String & | operator+= (long long unsigned int i) |
Sum operator for an unsigned integer. More... | |
String & | operator+= (float f) |
Sum operator for float. More... | |
String & | operator+= (double d) |
Sum operator for double. More... | |
String & | operator+= (long double d) |
Sum operator for long double. More... | |
String & | operator+= (char c) |
Sum operator for char. More... | |
String & | operator+= (const char *s) |
Sum operator for char*. More... | |
String & | operator+= (const String &s) |
Sum operator for String. More... | |
String & | operator+= (const std::string &s) |
Sum operator for std::string. More... | |
bool | split (const char splitter, std::vector< String > &substrings, bool quote_protect=false) const |
Splits a string into substrings using splitter as delimiter. More... | |
bool | split (const String &splitter, std::vector< String > &substrings) const |
Splits a string into substrings using splitter (the whole string) as delimiter. More... | |
bool | split_quoted (const String &splitter, std::vector< String > &substrings, char q='"', QuotingMethod method = ESCAPE) const |
Splits a string into substrings using splitter (the whole string) as delimiter, but does not split within quoted substrings. More... | |
template<class StringIterator > | |
void | concatenate (StringIterator first, StringIterator last, const String &glue="") |
Concatenates all elements from first to last-1 and inserts glue between the elements. More... | |
static String | random (UInt length) |
returns a random string of the given length. It consists of [0-9a-zA-Z] More... | |
static String | number (double d, UInt n) |
returns a string for d with exactly n decimal places More... | |
static String | numberLength (double d, UInt n) |
Returns a string with at maximum n characters for d . More... | |
A more convenient string class.
It is based on std::string but adds a lot of methods for convenience.
typedef const_iterator ConstIterator |
Const Iterator.
typedef const_reverse_iterator ConstReverseIterator |
Const reverse Iterator.
typedef reverse_iterator ReverseIterator |
Reverse Iterator.
typedef size_type SizeType |
UInt type.
enum QuotingMethod |
String | ( | ) |
Default constructor.
String | ( | const std::string & | s | ) |
Constructor from std::string.
String | ( | const std::string_view & | sv | ) |
Constructor from std::string_view.
String | ( | const QString & | s | ) |
Constructor from Qt QString.
String | ( | const char * | s | ) |
Constructor from char*.
String | ( | const char | c | ) |
Constructor from a char.
String | ( | size_t | len, |
char | c | ||
) |
Constructor from char (repeats the char len
times)
|
inline |
Constructor from a char range.
String | ( | int | i | ) |
Constructor from an integer.
String | ( | unsigned int | i | ) |
Constructor from an unsigned integer.
String | ( | short int | i | ) |
Constructor from an integer.
String | ( | short unsigned int | i | ) |
Constructor from an unsigned integer.
String | ( | long int | i | ) |
Constructor from an integer.
String | ( | long unsigned int | i | ) |
Constructor from an unsigned integer.
String | ( | long long unsigned int | i | ) |
Constructor from an unsigned integer.
String | ( | long long signed int | i | ) |
Constructor from an unsigned integer.
String | ( | float | f, |
bool | full_precision = true |
||
) |
Constructor from float (full_precision
controls number of fractional digits, 3 digits when false, and 6 when true)
String | ( | double | d, |
bool | full_precision = true |
||
) |
Constructor from double (full_precision
controls number of fractional digits, 3 digits when false, and 15 when true)
String | ( | long double | ld, |
bool | full_precision = true |
||
) |
Constructor from long double (full_precision
controls number of fractional digits, 3 digits when false, and 15 when true)
Constructor from DataValue (full_precision
controls number of fractional digits for all double types or lists of double, 3 digits when false, and 15 when true)
Returns a substring where n
characters were removed from the end of the string.
If n
is greater than size(), the result is an empty string.
n | Number of characters that will be removed from the end of the string. |
Referenced by IDScoreSwitcherAlgorithm::switchToGeneralScoreType().
|
inline |
Concatenates all elements from first
to last-1
and inserts glue
between the elements.
Referenced by OpenMS::StringUtils::substitute().
String& ensureLastChar | ( | char | end | ) |
Makes sure the string ends with the character end
.
Adds c
on the left side until the size of the string is size
.
Adds c
on the right side until the size of the string is size
.
String& firstToUpper | ( | ) |
Converts the first letter of the string to uppercase.
bool has | ( | Byte | byte | ) | const |
true if String contains the byte
, false otherwise
Referenced by DTA2DFile::load(), DTAFile::load(), and XMLHandler::writeXMLEscape().
bool hasPrefix | ( | const String & | string | ) | const |
true if String begins with string
, false otherwise
Referenced by XMLHandler::expectList_(), MascotGenericFile::getNextSpectrum_(), DTA2DFile::load(), and XMassFile::load().
bool hasSubstring | ( | const String & | string | ) | const |
true if String contains the string
, false otherwise
Referenced by XMLHandler::attributeAsStringList_(), MascotGenericFile::getNextSpectrum_(), XFDRAlgorithm::isSameProtein_(), and main().
bool hasSuffix | ( | const String & | string | ) | const |
true if String ends with string
, false otherwise
Referenced by OpenMS::StringUtils::ensureLastChar(), XMLHandler::expectList_(), XMassFile::load(), TOPPOpenSwathBase::prepareChromOutput(), and IDScoreSwitcherAlgorithm::switchToGeneralScoreType().
bool isQuoted | ( | char | q = '"' | ) |
Checks if the string is wrapped in quotation marks.
The quotation mark can be specified by parameter q
(typically single or double quote).
returns a string for d
with exactly n
decimal places
Returns a string with at maximum n
characters for d
.
If d
is larger, scientific notation is used.
String operator+ | ( | char | c | ) | const |
Sum operator for char.
String operator+ | ( | const char * | s | ) | const |
Sum operator for char*.
String operator+ | ( | const std::string & | s | ) | const |
Sum operator for std::string.
String operator+ | ( | double | d | ) | const |
Sum operator for double.
String operator+ | ( | float | f | ) | const |
Sum operator for float.
String operator+ | ( | int | i | ) | const |
Sum operator for an integer.
String operator+ | ( | long double | ld | ) | const |
Sum operator for long double.
String operator+ | ( | long int | i | ) | const |
Sum operator for an integer.
String operator+ | ( | long long unsigned int | i | ) | const |
Sum operator for an unsigned integer.
String operator+ | ( | long unsigned int | i | ) | const |
Sum operator for an unsigned integer.
String operator+ | ( | short int | i | ) | const |
Sum operator for an integer.
String operator+ | ( | short unsigned int | i | ) | const |
Sum operator for an unsigned integer.
String operator+ | ( | unsigned int | i | ) | const |
Sum operator for an unsigned integer.
String& operator+= | ( | char | c | ) |
Sum operator for char.
String& operator+= | ( | const char * | s | ) |
Sum operator for char*.
String& operator+= | ( | const std::string & | s | ) |
Sum operator for std::string.
String& operator+= | ( | double | d | ) |
Sum operator for double.
String& operator+= | ( | float | f | ) |
Sum operator for float.
String& operator+= | ( | int | i | ) |
Sum operator for an integer.
String& operator+= | ( | long double | d | ) |
Sum operator for long double.
String& operator+= | ( | long int | i | ) |
Sum operator for an integer.
String& operator+= | ( | long long unsigned int | i | ) |
Sum operator for an unsigned integer.
String& operator+= | ( | long unsigned int | i | ) |
Sum operator for an unsigned integer.
String& operator+= | ( | short int | i | ) |
Sum operator for an integer.
String& operator+= | ( | short unsigned int | i | ) |
Sum operator for an unsigned integer.
String& operator+= | ( | unsigned int | i | ) |
Sum operator for an unsigned integer.
String prefix | ( | char | delim | ) | const |
returns the prefix up to the first occurrence of char delim
(excluding it)
Exception::ElementNotFound | is thrown if delim is not found |
returns the prefix of length length
Exception::IndexUnderflow | is thrown if length is smaller than zero |
Exception::IndexOverflow | is thrown if length is bigger than the size |
returns the prefix of length length
Exception::IndexOverflow | is thrown if length is bigger than the size |
Referenced by OpenSwathHelper::computeTransitionGroupId(), XMassFile::importExperimentalSettings(), XMassFile::load(), and OpenMS::StringUtils::split().
String& quote | ( | char | q = '"' , |
QuotingMethod | method = ESCAPE |
||
) |
Wraps the string in quotation marks.
The quotation mark can be specified by parameter q
(typically single or double quote); embedded quotation marks are handled according to method
by backslash-escaping, doubling, or not at all.
Referenced by PeptideHit::PeakAnnotation::writePeakAnnotationsString_().
returns a random string of the given length. It consists of [0-9a-zA-Z]
String& remove | ( | char | what | ) |
Remove all occurrences of the character what
.
Referenced by MascotGenericFile::getNextSpectrum_(), XMassFile::importExperimentalSettings(), XMassFile::load(), and NucleicAcidSearchEngine::registerOptionsAndFlags_().
String& removeWhitespaces | ( | ) |
removes whitespaces (space, tab, line feed, carriage return)
String& reverse | ( | ) |
inverts the direction of the string
String& simplify | ( | ) |
merges subsequent whitespaces to one blank character
Referenced by MascotGenericFile::getNextSpectrum_(), and MS2File::load().
bool split | ( | const char | splitter, |
std::vector< String > & | substrings, | ||
bool | quote_protect = false |
||
) | const |
Splits a string into substrings
using splitter
as delimiter.
If splitter
is not found, the whole string is put into substrings
. If splitter
is empty, the string is split into individual characters. If the invoking string is empty, substrings
will also be empty.
quote_protect
(default: false) can be used to split only between quoted blocks e.g. ' "a string" , "another string with , in it" ' results in only two substrings (with double quotation marks removed). Every returned substring is trimmed and then (if present) has surrounding quotation marks removed.
Referenced by OpenSwathHelper::computeTransitionGroupId(), ListUtils::create(), extractCachedMetaFilename(), MascotGenericFile::getNextSpectrum_(), MsInspectFile::load(), SpecArrayFile::load(), MS2File::load(), DTA2DFile::load(), DTAFile::load(), NucleicAcidSearchEngine::parseAdduct_(), DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::readEnzymesFromFile_(), and OpenMS::StringUtils::substitute().
Splits a string into substrings
using splitter
(the whole string) as delimiter.
If splitter
is not found, the whole string is put into substrings
. If splitter
is empty, the string is split into individual characters. If the invoking string is empty, substrings
will also be empty.
bool split_quoted | ( | const String & | splitter, |
std::vector< String > & | substrings, | ||
char | q = '"' , |
||
QuotingMethod | method = ESCAPE |
||
) | const |
Splits a string into substrings
using splitter
(the whole string) as delimiter, but does not split within quoted substrings.
A "quoted substring" has the format as produced by quote(q, method)
, where q
is the quoting character and method
defines the handling of embedded quotes. Substrings will not be "unquoted" or otherwise processed.
If splitter
is not found, the whole string is put into substrings
. If splitter
or the invoking string is empty, substrings
will also be empty.
Exception::ConversionError | is thrown if quotation marks are not balanced |
String& substitute | ( | char | from, |
char | to | ||
) |
Replaces all occurrences of the character from
by the character to
.
Referenced by MascotGenericFile::getNextSpectrum_(), XFDRAlgorithm::isSameProtein_(), OpenMS::StringUtils::quote(), OpenMS::StringUtils::unquote(), and XMLHandler::writeXMLEscape().
Replaces all occurrences of the string from
by the string to
.
String substr | ( | size_t | pos = 0 , |
size_t | n = npos |
||
) | const |
Wrapper for the STL substr() method. Returns a String object with its contents initialized to a substring of the current object.
pos | Position of a character in the current string object to be used as starting character for the substring. If the pos is past the end of the string, it is set to the end of the string. |
n | Length of the substring. If this value would make the substring to span past the end of the current string content, only those characters until the end of the string are used. npos is a static member constant value with the greatest possible value for an element of type size_t, therefore, when this value is used, all the characters between pos and the end of the string are used as the initialization substring. |
Referenced by XMLHandler::asDateTime_(), XMLHandler::attributeAsDoubleList_(), XMLHandler::attributeAsIntList_(), XMLHandler::attributeAsStringList_(), MascotGenericFile::getNextSpectrum_(), DTA2DFile::load(), OpenMS::StringUtils::prefix(), OpenMS::StringUtils::split(), OpenMS::StringUtils::split_quoted(), OpenMS::StringUtils::suffix(), and OpenMS::StringUtils::unquote().
String suffix | ( | char | delim | ) | const |
returns the suffix up to the last occurrence of char delim
(excluding it)
Exception::ElementNotFound | is thrown if delim is not found |
returns the suffix of length length
Exception::IndexUnderflow | is thrown if length is smaller than zero |
Exception::IndexOverflow | is thrown if length is bigger than the size |
returns the suffix of length length
Exception::IndexOverflow | is thrown if length is bigger than the size |
Referenced by XMassFile::load(), and OpenMS::StringUtils::split().
double toDouble | ( | ) | const |
Conversion to double.
Exception::ConversionError | is thrown if the string could not be converted to double |
Referenced by XMLHandler::asDouble_(), XMLHandler::attributeAsDouble_(), XMLHandler::fromXSDString(), MascotGenericFile::getNextSpectrum_(), and XMLHandler::optionalAttributeAsDouble_().
float toFloat | ( | ) | const |
Conversion to float.
Exception::ConversionError | is thrown if the string could not be converted to float |
Referenced by XMLHandler::asFloat_().
Int toInt | ( | ) | const |
Conversion to Int.
This method extracts only the integral part of the string. If you want the result rounded, use toFloat() and round the result.
Exception::ConversionError | is thrown if the string could not be converted to Int |
Referenced by XMLHandler::asInt_(), XMLHandler::asUInt_(), and MascotGenericFile::getNextSpectrum_().
Int32 toInt32 | ( | ) | const |
Conversion to Int32.
This method extracts only the integral part of the string. If you want the result rounded, use toFloat() and round the result.
Exception::ConversionError | is thrown if the string could not be converted to Int32 |
Referenced by OpenMS::detail::convert(), and XMLHandler::fromXSDString().
Int64 toInt64 | ( | ) | const |
Conversion to Int64.
This method extracts only the integral part of the string. If you want the result rounded, use toFloat() and round the result.
Exception::ConversionError | is thrown if the string could not be converted to Int64 |
Referenced by XMLHandler::fromXSDString().
String& toLower | ( | ) |
Converts the string to lowercase.
Referenced by DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::addEnzyme_(), ListUtils::contains(), DecoyHelper::countDecoys(), and TOPPOpenSwathBase::prepareChromOutput().
QString toQString | ( | ) | const |
Conversion to Qt QString.
Referenced by FileWatcher::addFile(), TOPPASBase::addTOPPASFile(), TOPPViewBase::chooseFilesDialog_(), TOPPASBase::createTOPPToolsTreeWidget(), TOPPASBase::exportAsImage(), TOPPViewBase::fileChanged_(), TOPPASBase::includePipeline(), TOPPASBase::loadPipelineResourceFile(), QApplicationTOPP::notify(), INIFileEditorWindow::openFile(), TOPPASBase::openFilesByDialog(), QApplicationTOPP::QApplicationTOPP(), TOPPASBase::refreshParameters(), FileWatcher::removeFile(), TOPPViewBase::runTOPPTool_(), TOPPASBase::saveCurrentPipelineAs(), INIFileEditorWindow::saveFileAs(), TOPPASBase::savePipeline(), TOPPASBase::savePipelineAs(), TOPPASBase::savePipelineResourceFile(), TOPPASBase::showAsWindow_(), TOPPViewBase::showCursorStatus(), and TOPPASBase::TOPPASBase().
String& toUpper | ( | ) |
Converts the string to uppercase.
Referenced by DTA2DFile::load().
String& trim | ( | ) |
removes whitespaces (space, tab, line feed, carriage return) at the beginning and the end of the string
Referenced by XMLHandler::asDateTime_(), ListUtils::create(), MascotGenericFile::getNextSpectrum_(), MS2File::load(), DTA2DFile::load(), DTAFile::load(), and OpenMS::StringUtils::split().
String& unquote | ( | char | q = '"' , |
QuotingMethod | method = ESCAPE |
||
) |
Reverses changes made by the quote
method.
Removes surrounding quotation marks (given by parameter q
); handles embedded quotes according to method
.
Exception::ConversionError | is thrown if the string does not have the format produced by quote |
|
static |
Empty string for comparisons.