1 #ifndef __JLANG__JSTRING__ 
    2 #define __JLANG__JSTRING__ 
   21 namespace JPP { 
using namespace JLANG; }
 
   50     explicit JString(
const std::string& buffer) :
 
   71     explicit JString(
const char* buffer, 
const std::string::size_type length) :
 
   72       std::string(buffer, length)
 
  114       for (
int size = 1024; ; size <<= 1) {
 
  118         va_start(args, format);
 
  120         const int length = vsnprintf(buffer, size, format, args);
 
  124           this->
assign(buffer, buffer + length);
 
  146       istringstream is(*
this);
 
  148       ios_base::iostate state;
 
  150       facet.
get(is, istreambuf_iterator<char>(), is, state, *
this);
 
  165       return this->size() >= prefix.size() && this->substr(0, prefix.size()) == prefix;
 
  177       return this->size() >= suffix.size() && this->substr(this->size() - suffix.size()) == suffix;
 
  190                      const char         replacement,
 
  191                      const std::size_t  max = std::numeric_limits<std::size_t>::max())
 
  193       for (std::size_t i = this->find(target), n = max; i != std::string::npos && n != 0; i = find(target,i), --n) {
 
  194         (*this)[i] = replacement;
 
  210                      const std::string& replacement,
 
  211                      const std::size_t  max = std::numeric_limits<std::size_t>::max())
 
  213       for (std::size_t i = this->find(target), n = max; i != std::string::npos && n != 0; i = this->find(target,i), --n) {
 
  214         replace(this->begin() + i, this->begin() + i + target.length(), replacement);
 
  232                      const std::size_t  max = std::numeric_limits<std::size_t>::max())
 
  234       for (std::size_t i = this->find(target), n = max; i != std::string::npos && n != 0; i = this->find(target,i), --n) {
 
  235         replace(this->begin() + i, this->begin() + i + target.length(), 
JString(value));
 
  293       for (
iterator i = begin(); i != end(); ++i) {
 
  308       for (
iterator i = begin(); i != end(); ++i) {
 
  324       std::ostringstream os;
 
  342       std::ostringstream os;
 
  362       std::istringstream is(input);
 
  382       istringstream is(*
this);
 
  390       this->
assign(istreambuf_iterator<char>(is),
 
  391                    istreambuf_iterator<char>());
 
  408       istream::sentry sentry(in);   
 
  412         const locale& loc = in.getloc();
 
  414         if (has_facet<JStringFacet>(loc)) {
 
  416           ios_base::iostate state;
 
  418           use_facet<JStringFacet>(loc).
get(in, istreambuf_iterator<char>(), in, state, object);
 
  420           if (state != ios_base::goodbit && state != ios_base::eofbit) {
 
  426           in >> 
static_cast<string&
>(object);
 
  445       const locale& loc = out.getloc();
 
  447       if (has_facet<JStringFacet>(loc)) {
 
  449         use_facet<JStringFacet>(loc).put(out, out, out.fill(), object);
 
  453         out << static_cast<const string&>(object);
 
  472     istream::sentry sentry(in, 
true);   
 
  476       const locale& loc = in.getloc();
 
  478       if (has_facet<JStringFacet>(loc)) {
 
  480         use_facet<JStringFacet>(loc).
getline(in, 
object);
 
  484         getline(in, static_cast<string&>(
object));
 
JString(const std::string &buffer)
Constructor. 
 
JString(const char *buffer, const std::string::size_type length)
Constructor. 
 
static JString valueOf(const T &input)
Convert value to string. 
 
JString trim(const std::string &target)
Trim string. 
 
Wrapper class around STL string class. 
 
JString & replace(const std::string &target, const std::string &replacement, const std::size_t max=std::numeric_limits< std::size_t >::max())
Replace character sequences. 
 
std::string replace(const std::string &input, const std::string &target, const std::string &replacement)
Replace tokens in string. 
 
static JString valueOf(const int input)
Convert enumeration type to string. 
 
JString & toLower()
Convert all character to lower case. 
 
friend std::istream & operator>>(std::istream &in, JString &object)
Read string from input stream. 
 
static const T & toValue(const JString &input)
Convert string to value. 
 
JString(const char c)
Constructor. 
 
bool endsWith(const std::string &suffix) const 
Test if this string ends with the specified suffix. 
 
JString & compile(const JStringFacet &facet)
Compile token with given facet. 
 
std::string trim(const std::string &buffer)
Trim string. 
 
JString()
Default constructor. 
 
JAssignSequence< typename JContainer_t::value_type > assign(JContainer_t &out)
Helper method to assign sequence of Comma Separated Values to output container. 
 
friend std::ostream & operator<<(std::ostream &out, const JString &object)
Write string to output stream. 
 
JString & trim()
Trim string. 
 
bool startsWith(const std::string &prefix) const 
Test if this string starts with the specified prefix. 
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line. 
 
JString(const T &value)
Constructor. 
 
JString & assign(T &output)
Assign (part of) string to value. 
 
JString & toUpper()
Convert all character to upper case. 
 
JString(const JString &buffer, const JStringFacet &facet)
Constructor. 
 
JString & trim(const char c)
Trim string. 
 
istreambuf_iterator get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, std::string &buffer) const 
Get string. 
 
Facet class to specify parsing of a JLANG::JString object. 
 
JString & replace(const char target, const char replacement, const std::size_t max=std::numeric_limits< std::size_t >::max())
Replace characters. 
 
JString(const char *format,...)
Constructor. 
 
JString & replace(const std::string &target, const T &value, const std::size_t max=std::numeric_limits< std::size_t >::max())
Replace character sequence.