Isis Developer Reference
|
Adds specific functionality to C++ strings. More...
#include <IString.h>
Public Member Functions | |
IString () | |
Constructs an empty IString object. | |
IString (const std::string &str) | |
Constructs a IString object with initial value set to the string argument. | |
IString (const IString &str) | |
Constructs a IString with initial value set to the IString argument. | |
IString (const char *str) | |
Constructs a IString with initial value set to the argument. | |
IString (const int &num) | |
Constructs a IString object with its initial value set to the string representation of the int argument. | |
IString (const double &num, const int piPrecision=14) | |
Constructs a IString object with its initial value set to the string representation of the double argument. | |
IString (const BigInt &num) | |
Constructs a IString object with its initial value set to the string representation of the BigInt argument. | |
IString (const QString &str) | |
Constructs a IString object with initial value set to the input QString. | |
~IString () | |
Destructor. | |
IString | Trim (const std::string &chars) |
Removes characters from the beginning and end of the IString. | |
IString | TrimHead (const std::string &chars) |
Trims The input characters from the beginning of the object IString. | |
IString | TrimTail (const std::string &chars) |
Trims the input characters from the end of the object IString. | |
IString | UpCase () |
Converst any lower case characters in the object IString with uppercase characters. | |
IString | DownCase () |
Converts all upper case letters in the object IString into lower case characters. | |
int | ToInteger () const |
Returns the object string as an integer. | |
BigInt | ToBigInteger () const |
Returns the BigInt representation of the object IString. | |
double | ToDouble () const |
Returns the floating point value the IString represents. | |
QString | ToQt () const |
Retuns the object string as a QString. | |
IString | Token (const IString &separator) |
Returns the first token in the IString. | |
IString | Compress (bool force=false) |
Collapses multiple spaces into single spaces. | |
IString | Replace (const std::string &from, const std::string &to, int maxReplaceCount=20) |
Replaces all instances of the first input string with the second input string. | |
IString | Replace (const std::string &from, const std::string &to, bool honorquotes) |
Replaces all instances of the first input string with the second input string. | |
IString | Convert (const std::string &listofchars, const char &to) |
Returns the string with all occurrences of any character in the "from" argument converted to the "to" argument. | |
IString | ConvertWhiteSpace () |
Returns the string with all "new lines", "carriage returns", "tabs", "form
feeds", "vertical tabs" and "back spaces" converted to single spaces. | |
IString | Remove (const std::string &del) |
Remove all instances of any character in the string from the IString. | |
operator int () const | |
Attempts to convert the stirng to a 32 bit integer and return that int. | |
operator BigInt () const | |
Attempts to convert the stirng to a 64 bit integer and return that int. | |
operator double () const | |
Attempts to convert the stirng to a 64 bit double and return that double. | |
IString & | operator= (const int &value) |
Attempts to convert the stirng to a QStirng (Qt) and return that IString. | |
IString & | operator= (const BigInt &value) |
Attempts to convert a 64 bit integer into its string representation. | |
IString & | operator= (const double &value) |
Attempts to convert double into its string representation. | |
bool | Equal (const std::string &str) const |
Compare a string to the object IString. | |
Static Public Member Functions | |
static std::string | Trim (const std::string &chars, const std::string &str) |
Removes all occurences of the input characters from the beginning and end of the input string. | |
static std::string | TrimHead (const std::string &chars, const std::string &str) |
Trims the input characters from the beginning of the input string. | |
static std::string | TrimTail (const std::string &chars, const std::string &str) |
Trims the input characters from the end of the input string. | |
static std::string | UpCase (const std::string &str) |
Converts lower case characters in the input string to upper case characters. | |
static std::string | DownCase (const std::string &str) |
Converts all upper case letters in the input string into lower case characters. | |
static int | ToInteger (const std::string &str) |
Returns the integer representation of the input string. | |
static BigInt | ToBigInteger (const std::string &str) |
Returns the Big Integer representation of the input string. | |
static double | ToDouble (const std::string &str) |
Returns the floating-point value represented by the input string. | |
static QString | ToQt (const std::string &str) |
Returns the input string as a QString. | |
static int | Split (const char separator, const std::string &instr, std::vector< std::string > &tokens, bool allowEmptyEntries=true) |
Find separators between characters and split them into strings. | |
static std::string | Compress (const std::string &str, bool force=false) |
Returns the input string with multiple spaces collapsed into single spaces. | |
static std::string | Replace (const std::string &str, const std::string &from, const std::string &to, int maxReplacementCount=20) |
Replace specified substring with replacement substring in a string. | |
static IString | Replace (const std::string &str, const std::string &from, const std::string &to, bool honorquotes) |
Replace specified substring with replacement substring in a string honoring quotes if requested. | |
static std::string | Convert (const std::string &str, const std::string &listofchars, const char &to) |
Converts all occurences in the input string of any character in the "from" string to the "to" character. | |
static std::string | ConvertWhiteSpace (const std::string &str) |
Converts all forms of whitespace in the input string into single spaces. | |
static std::string | Remove (const std::string &del, const std::string &str) |
Remove all instances of any character in the "del" argument from the input string. | |
static bool | Equal (const std::string &str1, const std::string &str2) |
Compare two strings, case-insensitive. | |
static std::string | ToStd (const QString &str) |
Converts a Qt string into a std::string. | |
static QStringList | ToQt (const std::vector< std::string > &sl) |
Converts a vector of strings into a QStringList. | |
static std::vector< std::string > | ToStd (const QStringList &sl) |
Converts a QStringList into a vector of strings. | |
Adds specific functionality to C++ strings.
This class extends the standard C++ string class with specific functionality useable by ISIS programmers.
Isis::IString::IString | ( | ) |
Isis::IString::IString | ( | const std::string & | str | ) |
Isis::IString::IString | ( | const IString & | str | ) |
Isis::IString::IString | ( | const char * | str | ) |
Isis::IString::IString | ( | const int & | num | ) |
Isis::IString::IString | ( | const double & | num, |
const int | piPrecision = 14 ) |
Constructs a IString object with its initial value set to the string representation of the double argument.
num | The initial value of the IString. The double value is converted to a string representation and stored as the value. The conversion is handled in the following manner: If (abs(num) < 0.1) it is presented in scientific notation If (abs(log10(num)) < 16) it is presented in normal notation if (abs(log10(num)) >= 16) it is presented in scientific notation Trailing zeros are removed such that 5.000 is presented as 5.0 |
Isis::IString::IString | ( | const BigInt & | num | ) |
Isis::IString::IString | ( | const QString & | str | ) |
Isis::IString::~IString | ( | ) |
Destructor.
IString Isis::IString::Compress | ( | bool | force = false | ) |
Collapses multiple spaces into single spaces.
force | Determines whether to compress inside quotes (single and double) |
References Compress().
Referenced by Compress().
|
static |
Returns the input string with multiple spaces collapsed into single spaces.
str | The string to be compressed |
force | Determines whether to compress inside quotes |
IString Isis::IString::Convert | ( | const std::string & | listofchars, |
const char & | to ) |
Returns the string with all occurrences of any character in the "from" argument converted to the "to" argument.
The original string is modified.
listofchars | The string of characters to be replaced. The order of the characters is not important. |
to | The single character used as the replacement. |
References Convert().
Referenced by Convert(), ConvertWhiteSpace(), Isis::ImageFileListWidget::fromPvl(), and Isis::ImageFileListWidget::toPvl().
|
static |
Converts all occurences in the input string of any character in the "from" string to the "to" character.
str | The input string |
listofchars | The string of characters to be replaced. The order of the characters is unimportant |
to | The single character used as replacement |
IString Isis::IString::ConvertWhiteSpace | ( | ) |
Returns the string with all "new lines", "carriage returns", "tabs", "form feeds", "vertical tabs" and "back spaces" converted to single spaces.
All quotes are ignored. The original string is modified.
References ConvertWhiteSpace().
Referenced by ConvertWhiteSpace().
|
static |
Converts all forms of whitespace in the input string into single spaces.
str |
References Convert().
IString Isis::IString::DownCase | ( | ) |
Converts all upper case letters in the object IString into lower case characters.
References DownCase().
Referenced by IsisAml::CreatePVL(), DownCase(), IsisAml::GroupIndex(), IsisAml::IsParamInPvlInclude(), Isis::TextFile::Open(), Isis::NoCaseStringCompare< K >::operator()(), Isis::ControlNetFilter::PointMeasurePropertiesFilter(), and Isis::ControlNetFilter::PointPropertiesFilter().
|
static |
Converts all upper case letters in the input string into lower case characters.
str |
bool Isis::IString::Equal | ( | const std::string & | str | ) | const |
|
static |
Compare two strings, case-insensitive.
str1 | [in] The first string to compare |
str2 | [in] The second string to compare |
References Isis::nocase_compare().
|
inline |
Attempts to convert the stirng to a 64 bit integer and return that int.
References ToBigInteger().
|
inline |
Attempts to convert the stirng to a 64 bit double and return that double.
References ToDouble().
|
inline |
Attempts to convert the stirng to a 32 bit integer and return that int.
References ToInteger().
Attempts to convert a 64 bit integer into its string representation.
value | [in] The 64 bit integer to be converted to a string |
|
inline |
Attempts to convert double into its string representation.
value | [in] The double to be converted to a string |
IString & Isis::IString::operator= | ( | const int & | value | ) |
Attempts to convert the stirng to a QStirng (Qt) and return that IString.
Attempts to convert a 32 bit integer into its string representation.
value | [in] The 32 bit integer to be converted to a string |
IString Isis::IString::Remove | ( | const std::string & | del | ) |
|
static |
Remove all instances of any character in the "del" argument from the input string.
str | The string from which characters are to be removed |
del | The string of characters to be removed. Order is unimportant. |
IString Isis::IString::Replace | ( | const std::string & | from, |
const std::string & | to, | ||
bool | honorquotes ) |
Replaces all instances of the first input string with the second input string.
Honoring quotes if requested by the boolean
from | Search string that when found in str, it is replaced with to. |
to | IString that will replace every occurance of from in str. |
honorquotes | Set to true to honor quotes and not replace inside them |
References Replace().
IString Isis::IString::Replace | ( | const std::string & | from, |
const std::string & | to, | ||
int | maxReplaceCount = 20 ) |
Replaces all instances of the first input string with the second input string.
For more information, see IString::Replace(const string, const string, const string, int)
from | Search string that when found in str, it is replaced with to |
to | IString that will replace every occurance of from in str. |
maxReplaceCount | Maximum number of replacements to allow per call |
|
static |
Replace specified substring with replacement substring in a string honoring quotes if requested.
This routine is case sensitive and will only replace exact matches.
str | Input string to search and replace substrings in |
from | Search string that when found in str, it is replaced with to. |
to | IString that will replace every occurance of from in str. |
honorquotes | Set to true to honor quotes and not replace inside them |
|
static |
Replace specified substring with replacement substring in a string.
This method accepts a string, a target substring and a replacement substring with the intent to find all occurances of the subTarg substring in s and replace them with the substring subRep. The maxReplaceCount parameter is so that a should the replacement substring contain the target substring, an infinite loop would occur.
Note that the search for strings are implemented as a loop that always starts at the begining of s. So should the above scenario occur, it will be limited.
I have found this useful for formulating database SQL queries in a loop. The following example illustrates this usage:
This routine is case sensitive and will only replace exact matches.
To prevent infinite recursion, where the replace string contains the search string, use the maxReplaceCount to adjust appropriately.
str | Input string to search and replace substrings |
from | Search string that when found in str, it is replaced with to |
to | IString that will replace every occurance of from in str. |
maxReplaceCount | Maximum number of replacements to allow per call |
|
static |
Find separators between characters and split them into strings.
This method will break up the input string into tokens that are separated by one or more of the specified character. If allowEmptyEntries == true, then one or separator characters are deem a single separator and the string is split into two different sections. If allowEmptyEntries == false, then should more than one separator character occur in succession, this will result in the number of separator characters less one empty strings returned to the caller.
separator | A single character that separates each substring |
str | The string to break into separate fields or tokens |
tokens | A vector of strings that will receive the tokens as separated by the separator character. |
allowEmptyEntries | If true, treat successive separator characters as a single separator. If false, successive separator characters result in empty strings/tokens. |
BigInt Isis::IString::ToBigInteger | ( | ) | const |
Returns the BigInt representation of the object IString.
References ToBigInteger().
Referenced by operator BigInt(), and ToBigInteger().
|
static |
Returns the Big Integer representation of the input string.
str | The string representing an integer value |
References _FILEINFO_, and Isis::IException::Unknown.
double Isis::IString::ToDouble | ( | ) | const |
Returns the floating point value the IString represents.
References ToDouble().
Referenced by Isis::ScatterPlotAlarmConfigDialog::applySettingsToScatterPlot(), IsisAml::GetDouble(), Isis::MosaicFindTool::getUserGroundPoint(), operator double(), Isis::iTime::Second(), ToDouble(), and Isis::MosaicAreaTool::userChangedBox().
|
static |
Returns the floating-point value represented by the input string.
str | The string representing the numeric value |
References _FILEINFO_, and Isis::IException::Unknown.
int Isis::IString::ToInteger | ( | ) | const |
Returns the object string as an integer.
References ToInteger().
Referenced by Isis::iTime::Day(), Isis::iTime::DayOfYear(), IsisAml::GetInteger(), Isis::iTime::Hour(), Isis::KernelDb::matches(), Isis::iTime::Minute(), Isis::iTime::Month(), operator int(), ToInteger(), and Isis::iTime::Year().
|
static |
Returns the integer representation of the input string.
str | The string representing an integer value |
References _FILEINFO_, and Isis::IException::Unknown.
Returns the first token in the IString.
A token is defined as a string of characters from the beginning of the string to, but not including, the first character matching any character in the separator string. The token is removed from the original string along with the separator.
separator | The string of characters used to separate tokens. The order of the characters is not important. |
Referenced by Isis::PvlKeyword::addCommentWrapped(), Isis::InfixToPostfix::convert(), Isis::fitsToJson(), Isis::KernelDb::matches(), Isis::CubeCalculator::prepareCalculations(), Isis::FileList::read(), Isis::SocketThread::run(), and Isis::UserInterface::SetBatchList().
QString Isis::IString::ToQt | ( | ) | const |
Retuns the object string as a QString.
Referenced by Isis::ScatterPlotAlarmConfigDialog::applySettingsToScatterPlot(), Isis::InfixToPostfix::convert(), Isis::Environment::Environment(), Isis::SqlQuery::exec(), Isis::SqlQuery::fieldIndex(), Isis::fitsToJson(), Isis::ImageFileListWidget::fromPvl(), Isis::Preference::Load(), Isis::Preference::Preferences(), Isis::ScatterPlotAlarmConfigDialog::readSettingsFromScatterPlot(), Isis::Image::save(), Isis::Shape::save(), Isis::UserInterface::SetBatchList(), Isis::ImageFileListWidget::toPvl(), and ToQt().
|
static |
Returns the input string as a QString.
s | [in] The standard string to be converted to a Qt string |
|
static |
Converts a vector of strings into a QStringList.
sl | STL vector of strings |
References ToQt().
|
static |
Converts a Qt string into a std::string.
str | [in] The Qt string to be converted to a std::string |
Referenced by Isis::SqlQuery::fieldName(), Isis::SqlQuery::fieldNameList(), Isis::SqlQuery::getQuery(), and ToStd().
|
static |
Converts a QStringList into a vector of strings.
sl |
References ToStd().
IString Isis::IString::Trim | ( | const std::string & | chars | ) |
Removes characters from the beginning and end of the IString.
The order of the characters makes no difference.
chars | The string of characters to be trimmed |
References TrimHead(), and TrimTail().
Referenced by IsisAml::CommandLine().
|
static |
Removes all occurences of the input characters from the beginning and end of the input string.
chars | The string of characters to be removed. Order makes no difference |
str | The input string to be trimmed |
References TrimHead(), and TrimTail().
IString Isis::IString::TrimHead | ( | const std::string & | chars | ) |
Trims The input characters from the beginning of the object IString.
chars | The string of characters to be trimmed. Order makes no difference |
Referenced by Isis::fitsToJson(), Isis::FileList::read(), Trim(), and Trim().
|
static |
Trims the input characters from the beginning of the input string.
chars | The input characters to be removed. Order makes no difference |
str | The string to be trimmed |
IString Isis::IString::TrimTail | ( | const std::string & | chars | ) |
Trims the input characters from the end of the object IString.
chars | The string of characters to be removed. Order is irrelevant |
Referenced by Isis::fitsToJson(), Isis::FileList::read(), Trim(), and Trim().
|
static |
Trims the input characters from the end of the input string.
chars | The characters to be removed from the input string. Order does not matter, all characters are treated individually. |
str | The string to be trimmed |
IString Isis::IString::UpCase | ( | ) |
Converst any lower case characters in the object IString with uppercase characters.
References UpCase().
Referenced by IsisAml::CommandLine(), Isis::TableRecord::operator[](), Isis::GridPolygonSeeder::Parse(), Isis::PvlKeyword::reform(), IsisAml::ReturnParam(), Isis::GuiComboBoxParameter::Set(), and UpCase().
|
static |
Converts lower case characters in the input string to upper case characters.
str | The string to be converted |