Isis 3 Programmer Reference
IString.h
Go to the documentation of this file.
1 #ifndef IString_h
2 #define IString_h
3 
25 #include <string>
26 #include <vector>
27 
28 #include <QString>
29 #include <QStringList>
30 
31 #include "Constants.h"
32 
33 namespace Isis {
34  class IString;
35 
36  bool toBool(const QString &);
37  int toInt(const QString &);
38  BigInt toBigInt(const QString &);
39  double toDouble(const QString &);
40 
41  QString toString(bool);
42  QString toString(char);
43  QString toString(const int &);
44  QString toString(const unsigned int &);
45  QString toString(const BigInt &);
46  QString toString(double, int precision = 14);
47 
181  class IString : public std::string {
182  public:
183  IString();
184 
185  IString(const std::string &str);
186  IString(const IString &str);
187  IString(const char *str);
188  IString(const int &num);
189  IString(const double &num, const int piPrecision = 14);
190  IString(const BigInt &num);
191  IString(const QString &str);
192 
193  ~IString();
194 
195  IString Trim(const std::string &chars);
196  static std::string Trim(const std::string &chars, const std::string &str);
197 
198  IString TrimHead(const std::string &chars);
199  static std::string TrimHead(const std::string &chars, const std::string &str);
200 
201  IString TrimTail(const std::string &chars);
202  static std::string TrimTail(const std::string &chars, const std::string &str);
203 
204  IString UpCase();
205  static std::string UpCase(const std::string &str);
206 
207  IString DownCase();
208  static std::string DownCase(const std::string &str);
209 
210  int ToInteger() const;
211  static int ToInteger(const std::string &str);
212 
213  BigInt ToBigInteger() const;
214  static BigInt ToBigInteger(const std::string &str);
215 
216  double ToDouble() const;
217  static double ToDouble(const std::string &str);
218 
219  QString ToQt() const;
220  static QString ToQt(const std::string &str);
221 
222  IString Token(const IString &separator);
223  static int Split(const char separator, const std::string &instr,
224  std::vector<std::string> &tokens,
225  bool allowEmptyEntries = true);
226 
227  IString Compress(bool force = false);
228  static std::string Compress(const std::string &str, bool force = false);
229 
230  IString Replace(const std::string &from, const std::string &to,
231  int maxReplaceCount = 20);
232  static std::string Replace(const std::string &str,
233  const std::string &from,
234  const std::string &to,
235  int maxReplacementCount = 20);
236 
237  IString Replace(const std::string &from, const std::string &to , bool honorquotes);
238  static IString Replace(const std::string &str, const std::string &from,
239  const std::string &to , bool honorquotes);
240 
241  IString Convert(const std::string &listofchars, const char &to);
242  static std::string Convert(const std::string &str,
243  const std::string &listofchars,
244  const char &to);
245 
247  static std::string ConvertWhiteSpace(const std::string &str);
248 
249  IString Remove(const std::string &del);
250  static std::string Remove(const std::string &del, const std::string &str);
251 
257  operator int() const {
258  return ToInteger();
259  };
260 
267  operator BigInt() const {
268  return ToBigInteger();
269  };
270 
276  operator double() const {
277  return ToDouble();
278  };
279 
285 #if 0
286  operator IString() const {
287  return ToQt();
288  };
289 #endif
290 
291  IString &operator= (const int &value);
292 
293  IString &operator= (const BigInt &value);
294 
302  IString &operator= (const double &value) {
303  SetDouble(value);
304  return *this;
305  }
306 
307  bool Equal(const std::string &str) const;
308  static bool Equal(const std::string &str1, const std::string &str2);
309 
310  static std::string ToStd(const QString &str);
311 
312  static QStringList ToQt(const std::vector<std::string> &sl);
313  static std::vector<std::string> ToStd(const QStringList &sl);
314 
315  private:
316  void SetDouble(const double &value, const int piPrecision = 14);
317  };
318 
319  std::ostream &operator<<(std::ostream &os, const QString &string);
320  std::ostream &operator<<(std::ostream &os, const QStringRef &string);
321 }
322 
323 #endif
long long int BigInt
Big int.
Definition: Constants.h:65
IString()
Constructs an empty IString object.
Definition: IString.cpp:418
static std::string ToStd(const QString &str)
Converts a Qt string into a std::string.
Definition: IString.cpp:1348
double ToDouble() const
Returns the floating point value the IString represents.
Definition: IString.cpp:814
int toInt(const QString &string)
Global function to convert from a string to an integer.
Definition: IString.cpp:108
IString & operator=(const int &value)
Attempts to convert the stirng to a QStirng (Qt) and return that IString.
Definition: IString.cpp:1316
IString TrimHead(const std::string &chars)
Trims The input characters from the beginning of the object IString.
Definition: IString.cpp:573
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition: IString.cpp:226
int ToInteger() const
Returns the object string as an integer.
Definition: IString.cpp:733
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.
Definition: IString.cpp:955
BigInt toBigInt(const QString &string)
Global function to convert from a string to a "big" integer.
Definition: IString.cpp:130
double toDouble(const QString &string)
Global function to convert from a string to a double.
Definition: IString.cpp:164
IString Compress(bool force=false)
Collapses multiple spaces into single spaces.
Definition: IString.cpp:989
IString Token(const IString &separator)
Returns the first token in the IString.
Definition: IString.cpp:912
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"...
Definition: IString.cpp:1211
QString ToQt() const
Retuns the object string as a QString.
Definition: IString.cpp:884
IString Remove(const std::string &del)
Remove all instances of any character in the string from the IString.
Definition: IString.cpp:1281
~IString()
Destructor.
Definition: IString.cpp:528
IString DownCase()
Converts all upper case letters in the object IString into lower case characters. ...
Definition: IString.cpp:659
void SetDouble(const double &value, const int piPrecision=14)
Performs the conversion necessary to represent a floating-point value as a string.
Definition: IString.cpp:509
bool toBool(const QString &string)
Global function to convert from a string to a boolean.
Definition: IString.cpp:53
bool Equal(const std::string &str) const
Compare a string to the object IString.
Definition: IString.cpp:705
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.
Definition: IString.cpp:1052
Adds specific functionality to C++ strings.
Definition: IString.h:181
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
IString ConvertWhiteSpace()
Returns the string with all "new lines", "carriage returns", "tabs", "form feeds", "vertical tabs" and "back spaces" converted to single spaces.
Definition: IString.cpp:1253
QDebug operator<<(QDebug debug, const Hillshade &hillshade)
Print this class out to a QDebug object.
Definition: Hillshade.cpp:308
IString UpCase()
Converst any lower case characters in the object IString with uppercase characters.
Definition: IString.cpp:632
BigInt ToBigInteger() const
Returns the BigInt representation of the object IString.
Definition: IString.cpp:773
IString TrimTail(const std::string &chars)
Trims the input characters from the end of the object IString.
Definition: IString.cpp:602
IString Trim(const std::string &chars)
Removes characters from the beginning and end of the IString.
Definition: IString.cpp:540