Vous pouvez récupérer tous les programmes en un seul tar.gz sur Telecharger String . Pour obtenir ce fichier, dans un butineur web, sauvez ce fichier en type 'texte'.
//
// Auteur : Al Dev
// Utilisez la classe string ou cette classe
//
// Pour éviter les fuites de mémoire, une classe caractère qui gere les
// variables caractère.
// Préférez toujours l'utilisation de la classe string à char[] et char *.
//
// Pour compiler et tester ce programme
// (en supposant que libString.a est dans le repertoire courant)
// g++ example_String.cpp -L. -lString
#include <stdlib.h> // pour putenv
#include "String.h"
//#include <string> // ceci se trouve dans /usr/include/g++-2/string
//#include <cstring> // ceci se trouve dans /usr/include/g++-2/cstring et inclut /usr/include/strings.h
//
void java_string();
void java_string_buffer();
void java_string_to_numbers();
void java_string_tokenizer();
void java_string_reader();
void java_string_writer();
/////////////////////////////////////////////////
// Un exemple de programme pour présenter String
// Note : dans cet exemple, je n'ai pas du tout
// utilisé les fonctions de manipulation de la
// memoire comme new, delete, malloc, strdup.
// La classe String gère cela automatiquement !
/////////////////////////////////////////////////
int main(int argc, char **argv)
{
//char p_name[1024];
//sprintf(p_name, "PROGRAM_NAME=%s", argv[0]);
//putenv(p_name);
//print_total_memsize(); // au debut
java_string();
java_string_buffer();
java_string_to_numbers();
java_string_tokenizer();
java_string_reader();
java_string_writer();
//print_total_memsize(); // à la fin
}
// Exemple de démonstration de l'imitation de la classe
// Java String
void java_string()
{
String aa, bb, egg;
char tmpaa[100];
//bb.str_cpy(" bbSTRing ");
bb = " bbSTRing ";
// Test de l'opérateur + à droite
// aa + " droite "; // Aucun affichage ici !
// Vous devez l'utiliser directement avec fprintf comme suit
fprintf(stdout, "1) aa.val() is :%sEOF\n", (aa + " my rhs " ).val());
// Test de l'opérateur =
aa = " gauche " ;
fprintf(stdout, "2) With operator= aa.val() is :%sEOF\n", aa.val());
// Test de l'opérateur + à gauche
// " gauche " + aa; // Aucun affichage ici !
// Vous devez l'utiliser directement avec fprintf comme suit
fprintf(stdout, "3) With lsh operator+, aa.val() is :%sEOF\n", (" my lhs " + aa ).val());
// ***************** Fonctions à la Java ********************
aa = "Some Value 2345";
fprintf(stdout, "4) aa.charAt() is :%c %sEOF\n", aa.charAt(3), aa.val());
aa = "Some Value 2345";
strcpy(tmpaa, "tmpaa value");
aa.getChars(3, 8, tmpaa, 2);
fprintf(stdout, "5) aa.getChars() is : %s %sEOF\n", tmpaa, aa.val());
aa = "Some Value 2345";
fprintf(stdout, "6) aa.toCharArray() is : %sEOF\n", aa.toCharArray());
aa = "Some2345";
if (aa.equals("Some2345"))
fprintf(stdout, "7) aa.equals() is true : %sEOF\n", aa.val());
else
fprintf(stdout, "7) aa.equals() is false : %sEOF\n", aa.val());
aa = "testinglettercase";
egg = "TestingLetterCase";
if (aa.equalsIgnoreCase(egg))
fprintf(stdout, "8) egg equals aa (case insensitive) aa.val is :%sEOF\n", aa.val());
else
fprintf(stdout, "8) egg not equals aa (case insensitive) aa.val is :%sEOF\n", aa.val());
aa = "kkktestinglettercase";
egg = "abtestingLetterCase";
if (aa.regionMatches(true, 3, egg, 2, 7))
fprintf(stdout, "9) regionMatches is true aa.val is :%sEOF\n", aa.val());
else
fprintf(stdout, "9) regionMatches is false aa.val is :%sEOF\n", aa.val());
//aa.str_cpy(bb.val());
aa = bb + "Some Value 2345";
egg = aa.toUpperCase();
fprintf(stdout, "10) egg.val is :%sEOF\n", egg.val());
aa = bb + "Some Value 2345";
egg = aa.toLowerCase();
fprintf(stdout, "11) egg.val is :%sEOF\n", egg.val());
aa = "Some Value 2345";
egg = "Some";
if (aa.startsWith("Some"))
//if (aa.startsWith(egg))
fprintf(stdout, "12) aa.startsWith() is true :%sEOF\n", aa.val());
else
fprintf(stdout, "12) aa.startsWith() is false :%sEOF\n", aa.val());
aa = "Some Value 2345";
egg = " 2345";
if (aa.endsWith(" 2345"))
//if (aa.endsWith(egg))
fprintf(stdout, "13) aa.endsWith() is true :%sEOF\n", aa.val());
else
fprintf(stdout, "13) aa.endsWith() is false :%sEOF\n", aa.val());
aa = "bbb Some Value 2345";
egg = "caabc";
if (aa.compareTo(egg) == 0)
fprintf(stdout, "14) aa.compareTo() is zero :%sEOF\n", aa.val());
else
if (aa.compareTo(egg)> 0)
fprintf(stdout, "14) aa.compareTo() is greater :%sEOF\n", aa.val());
else
if (aa.compareTo(egg) < 0)
fprintf(stdout, "14) aa.compareTo() is less than :%sEOF\n", aa.val());
aa = "bbb Some Value 2345";
strcpy(tmpaa, "aabbb Some Value 2345");
if (aa.compareTo(tmpaa) == 0)
fprintf(stdout, "15) aa.compareTo() is zero :%sEOF\n", aa.val());
else
if (aa.compareTo(tmpaa)> 0)
fprintf(stdout, "15) aa.compareTo() is greater :%sEOF\n", aa.val());
else
if (aa.compareTo(tmpaa) < 0)
fprintf(stdout, "15) aa.compareTo() is less than :%sEOF\n", aa.val());
aa = "bbb Some Value 2345";
//egg = "bbb Some Value 2345";
egg = "CCaabc"; // change values to caabc, aabc
if (aa.compareToIgnoreCase(egg) == 0)
fprintf(stdout, "16) aa.compareToIgnoreCase() is zero :%sEOF\n", aa.val());
else
if (aa.compareToIgnoreCase(egg)> 0)
fprintf(stdout, "16) aa.compareToIgnoreCase() is greater :%sEOF\n", aa.val());
else
if (aa.compareToIgnoreCase(egg) < 0)
fprintf(stdout, "16) aa.compareToIgnoreCase() is less than :%sEOF\n", aa.val());
aa = "bbb Some Value 2345";
//strcpy(tmpaa, "bbb Some Value 2345");
strcpy(tmpaa, "CAABbb Some Value 2345"); // change value to caabb, aab
if (aa.compareToIgnoreCase(tmpaa) == 0)
fprintf(stdout, "17) aa.compareToIgnoreCase() is zero :%sEOF\n", aa.val());
else
if (aa.compareToIgnoreCase(tmpaa)> 0)
fprintf(stdout, "17) aa.compareToIgnoreCase() is greater :%sEOF\n", aa.val());
else
if (aa.compareToIgnoreCase(tmpaa) < 0)
fprintf(stdout, "17) aa.compareToIgnoreCase() is less than :%sEOF\n", aa.val());
aa = "bbb Some Value 2345";
strcpy(tmpaa, "Some");
egg = "Value";
fprintf(stdout, "18) aa.indexOf('S') %d :%sEOF\n", aa.indexOf('S'), aa.val());
fprintf(stdout, "18) aa.indexOf(tmpaa) %d :%sEOF\n", aa.indexOf(tmpaa), aa.val());
fprintf(stdout, "18) aa.indexOf(egg) %d :%sEOF\n", aa.indexOf(egg), aa.val());
aa = "bbb Some Value Some 2345";
strcpy(tmpaa, "Some");
egg = "Some";
fprintf(stdout, "19) aa.lastIndexOf('S') %d :%sEOF\n", aa.lastIndexOf('S'), aa.val());
fprintf(stdout, "19) aa.lastIndexOf(tmpaa) %d :%sEOF\n", aa.lastIndexOf(tmpaa), aa.val());
fprintf(stdout, "19) aa.lastIndexOf(egg) %d :%sEOF\n", aa.lastIndexOf(egg), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "20) aa.substring(5) %s :%sEOF\n",
aa.substring(5).val(), aa.val());
aa = "bbb Some Value Some 2345";
strcpy(tmpaa, "Some");
egg = "Some";
fprintf(stdout, "20) aa.replace('S', 'V') %s :%sEOF\n",
aa.replace('S', 'V').val(), aa.val());
fprintf(stdout, "20) aa.replace(Som, Vzz) %s :%sEOF\n",
aa.replace("Som", "Vzz").val(), aa.val());
aa = " bbb Some Value Some 2345 ";
fprintf(stdout, "21) aa.trim() :%sEOF val() :%sEOF\n",
aa.trim().val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "21) aa.concat() %s val :%sEOF\n",
aa.concat("add one").val(), aa.val());
//aa = "bbb Some Value Some 2345";
//fprintf(stdout, "21) aa.append() %s val :%sEOF\n",
// aa.append("add append").val(), aa.val());
aa = "bbb Some Value Some 2345";
egg = "jjjj";
fprintf(stdout, "21) aa.insert(5, egg) %s val :%sEOF\n",
aa.insert(5, egg).val(), aa.val());
fprintf(stdout, "21) aa.insert(5, ch) %s val :%sEOF\n",
aa.insert(5, 'M').val(), aa.val());
aa = "12345678";
fprintf(stdout, "46) aa.reverse()=%s aa.val is :%sEOF\n", aa.reverse().val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "21) aa.deleteCharAt(4) %s val :%sEOF\n",
aa.deleteCharAt(4).val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "22) aa.deleteStr(3,5) %s val :%sEOF\n",
aa.deleteStr(3,5).val(), aa.val());
// ***************** Fin des fonctions à la Java ********************
aa = "bbb Some Value Some 2345";
fprintf(stdout, "23) aa.str_tr(bomekk, BOME) %s val :%sEOF\n",
aa.tr("bomekk", "BOME").val(), aa.val());
aa = "bbb Some Value Some 2345";
aa = "$1,934 100%.234";
fprintf(stdout, "24) aa.compress() %s val :%sEOF\n",
aa.compress("$,%").val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "25) aa.xrange('a', 'j') %s val :%sEOF\n",
aa.xrange('a', 'j').val(), aa.val());
fprintf(stdout, "25) aa.xrange('1', '8') %s val :%sEOF\n",
aa.xrange('1', '8').val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "26) aa.center(15) %s val :%sEOF\n",
aa.center(15).val(), aa.val());
fprintf(stdout, "26) aa.center(15, '*') %s val :%sEOF\n",
aa.center(15, '*').val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "27) aa.space(3) %s val :%sEOF\n",
aa.space(3).val(), aa.val());
aa = " Some Value Some 2345";
fprintf(stdout, "28) aa.left() %s val :%sEOF\n",
aa.left().val(), aa.val());
fprintf(stdout, "28) aa.left(18) %s val :%sEOF\n",
aa.left(18).val(), aa.val());
aa = " 2345 ";
fprintf(stdout, "29) aa.right():%s val :%sEOF\n",
aa.right().val(), aa.val());
fprintf(stdout, "29) aa.right(5):%s val :%sEOF\n",
aa.right(5).val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "30) aa.overlay(12345678, 4, 10, *):%s val :%sEOF\n",
aa.overlay("12345678", 4, 10, '*').val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "31) aa.at(Som) %s :%sEOF\n",
aa.at("Som").val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "32) aa.before(Som) %s :%sEOF\n",
aa.before("Skkkom").val(), aa.val());
aa = "bbb Some Value Some 2345";
fprintf(stdout, "33) aa.after(Som) %s :%sEOF\n",
aa.after("Som").val(), aa.val());
aa = " bb some value ";
aa.ltrim(true);
fprintf(stdout, "34) aa.val is :%sEOF\n", aa.val());
aa = " bb some value ";
aa.rtrim(true);
fprintf(stdout, "35) aa.val() is :%sEOF\n", aa.val());
aa = " bb some value ";
aa.trim(true);
fprintf(stdout, "36) aa.val() is :%sEOF\n", aa.val());
aa = bb;
aa = aa + " testing newlines \n\n\n\n";
aa.chopall();
fprintf(stdout, "37) aa.val() is :%sEOF\n", aa.val());
aa = bb;
aa = aa + " rhs ";
fprintf(stdout, "38) aa.val() is :%sEOF\n", aa.val());
aa = bb;
aa = " lhs " + aa;
fprintf(stdout, "39) aa.val() is :%sEOF\n", aa.val());
// Sample addition of numbers
//aa = (String) 9989 + "kkk" + 33 ;
aa = 9999;
fprintf(stdout, "40) aa.val() is :%sEOF\n", aa.val());
aa = bb;
aa = " lhs " + aa + " rhs " + " 9989 " + " 33 ";
fprintf(stdout, "41) aa.val() is :%sEOF\n", aa.val());
aa = " AA value ";
aa = bb + "alkja " + " 99djd " ;
fprintf(stdout, "42) aa.val() is :%sEOF\n", aa.val());
aa = " AA value ";
aa = (String) "alkja " + " 99djd " ;
fprintf(stdout, "43) aa.val() is :%sEOF\n", aa.val());
aa = " AA value ";
aa += (String) " al dev test kkk... " + " al2 slkj" + " al3333 ";
fprintf(stdout, "44) aa.val() is :%sEOF\n", aa.val());
aa = " AA value ";
aa = aa + " add aa " + aa + aa + aa + " 1111 " + " 2222 " + aa + aa + aa + " 3333 ";
fprintf(stdout, "45) aa.val() is :%sEOF\n", aa.val());
aa = "12345678";
aa.reverse(true);
fprintf(stdout, "46) aa.val() is :%sEOF\n", aa.val());
aa = " AA value ";
aa = aa + " add aa " + aa + 1111 +" "+ 2222 + " " + 3.344 + aa;
fprintf(stdout, "47) aa.val() is :%sEOF\n", aa.val());
aa.roundd(123456.0123456789012345, 13);
fprintf(stdout, "48) double aa.val() is :%sEOF\n", aa.val());
aa.roundf(123456.0123456789, 13);
fprintf(stdout, "49) float aa.val() is :%sEOF\n", aa.val());
// Test d'égalite
aa = " AA value ";
String cc(" AA value ");
if (aa == cc)
fprintf(stdout, "50)aa=%s and cc=%s are equal!!\n", aa.val(), cc.val());
else
fprintf(stdout, "51)aa=%s and cc=%s are NOT equal!!\n", aa.val(), cc.val());
cc = "CC";
if (aa == cc)
fprintf(stdout, "52)aa=%s and cc=%s are equal!!\n", aa.val(), cc.val());
else
fprintf(stdout, "53)aa=%s and cc=%s are NOT equal!!\n", aa.val(), cc.val());
if (aa == " AA value ")
fprintf(stdout, "54)aa=%s and string are equal!!\n", aa.val());
else
fprintf(stdout, "55)aa=%s and string are NOT equal!!\n", aa.val());
if (aa == " AA valuexxx ")
fprintf(stdout, "56)aa=%s and string are equal!!\n", aa.val());
else
fprintf(stdout, "57)aa=%s and string are NOT equal!!\n", aa.val());
aa = " AA bb value 12345678 ";
fprintf(stdout, "58) aa.length() is :%ldEOF\n", aa.length());
aa = " AA bb value 12345678 ";
fprintf(stdout, "59) aa.repeat(BA, 4).val=%s aa.val() is :%sEOF\n",
aa.repeat("BA", 4).val(), aa.val());
aa = "";
aa = "aa";
if (aa.isNull())
fprintf(stdout, "60) aa.isNull() result=true%sEOF\n", aa.val());
else
fprintf(stdout, "60) aa.isNull() result=false%sEOF\n", aa.val());
aa = " some value aa";
aa.clear();
fprintf(stdout, "61) aa.clear() %sEOF\n", aa.val());
aa = " abcd efg hijk lmno ";
fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
aa.token().val(), aa.val());
fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
aa.token().val(), aa.val());
fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
aa.token().val(), aa.val());
fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
aa.token().val(), aa.val());
fprintf(stdout, "62) aa.token():%s val :%sEOF\n",
aa.token().val(), aa.val());
aa = " 2345 ";
if (aa.isInteger()) // is true
fprintf(stdout, "63) aa is a integer val :%sEOF\n", aa.val());
else
fprintf(stdout, "63) aa is NOT a integer val :%sEOF\n", aa.val());
aa = " 23.045 ";
if (aa.isNumeric()) // is true
fprintf(stdout, "64) aa is a numeric val :%sEOF\n", aa.val());
else
fprintf(stdout, "64) aa is NOT a numeric val :%sEOF\n", aa.val());
aa = " 23045 ";
fprintf(stdout, "65) aa.toInteger()=%d val :%sEOF\n",
aa.toInteger(), aa.val());
aa = " 230.45 ";
fprintf(stdout, "66) aa.toDouble()=%f val :%sEOF\n",
aa.toDouble(), aa.val());
aa = " testing abcdefg";
aa.chop();
fprintf(stdout, "68) aa.chop() aa.val is :%sEOF\n", aa.val());
aa = " str1 str2 string3 abcdefg joe john hardy ";
String *strlist;
int strcount = 0;
strlist = aa.explode(strcount);
for (int ii = 0; ii <= strcount; ii++)
{
fprintf(stdout, "69) strlist[%d] is :%sEOF\n",
ii, strlist[ii].val());
}
aa = " some aa ";
cout << "\n\nPlease enter a line and hit return key : ";
aa.getline();
fprintf(stdout, "70) aa.getline() is :%sEOF\n", aa.val());
aa = " some aa ";
cout << "71) Testing << operator aa is : " << aa << endl;
aa = " some aa ";
cout << "\n\n73) Testing>> operator. Enter value for aa : ";
cin>> aa;
cout << "73) Testing>> operator aa is : " << aa << endl;
// Vous pouvez utiliser aa.val() comme une variable 'char *' dans vos programmes !
aa = " str1 str2 string3 abcdefg joe john hardy ";
fprintf(stdout, "\n\n74) Test case using aa.val() as 'char []' variable... ");
for (unsigned long tmpii = 0; tmpii < aa.length(); tmpii++)
{
//fprintf(stdout, "aa.val()[%ld]=%c ", tmpii, aa.val()[tmpii]);
fprintf(stdout, "aa[%ld]=%c ", tmpii, aa[tmpii]);
}
fprintf(stdout, "\n");
// Utilisation de pointeurs sur 'char *' ...
fprintf(stdout, "\n\n75) Test case using aa.val() as 'char *' pointers... ");
aa = " str1 str2 string3 abcdefg joe john hardy ";
for (char *tmpcc = aa.val(); *tmpcc != 0; tmpcc++)
{
fprintf(stdout, "aa.val()=%c ", *tmpcc);
}
fprintf(stdout, "\n");
}
// Exemple de démonstration pour la classe StringBuffer de Java
void java_string_buffer()
{
String str1 = "ABCD EFGHI";
cout << "\nAssigned value to str1 " << endl;
StringBuffer aa;
StringBuffer bb(30);
StringBuffer cc(str1);
cout << "\n StringBuffer aa.length() : " << aa.length() << endl;
cout << "\n StringBuffer aa.capacity() : " << aa.capacity() << endl;
cout << "\n StringBuffer aa.ensureCapacity(28) : " << endl;
aa.ensureCapacity(28);
cout << "\n StringBuffer aa.setLength(38) : " << endl;
aa.setLength(38);
// En Java, vous utilisez new, en C++ supprimez new
// StringBuffer dd = new StringBuffer("some value for string buffer");
StringBuffer dd = StringBuffer("some value for string buffer");
cout << "\n StringBuffer dd.charAt(3) : " << dd.charAt(3) << endl;
dd.setCharAt(3, 'K');
cout << "\n StringBuffer setCharAt(3) : " << dd.charAt(3) << endl;
char ee[100];
memset(ee, 0, 100);
strcpy(ee, "111111111111111111111111111111111111");
dd.getChars(2, 12, ee, 3);
cout << "\n StringBuffer getChars(2, 12, ee, 3) : " << ee << endl;
dd.append(str1);
cout << "\n StringBuffer append() : " << dd << endl;
dd.append("12345678");
cout << "\n StringBuffer append() : " << dd << endl;
dd.append(9);
cout << "\n StringBuffer append() : " << dd << endl;
dd.append(7.876);
cout << "\n StringBuffer append() : " << dd << endl;
dd.setLength(1);
dd.append(" some value for dd");
dd.insert(4, str1);
cout << "\n StringBuffer insert() : " << dd << endl;
dd.reverse();
cout << "\n StringBuffer reverse() : " << dd << endl;
dd.setLength(1);
dd.append(" some value for dd");
dd.deleteStr(4, 9); // Java's delete()
cout << "\n StringBuffer deleteStr(4,9) : " << dd << endl;
dd.setLength(1);
dd.append(" some value for dd");
dd.deleteCharAt(6);
cout << "\n StringBuffer deleteCharAt() : " << dd << endl;
dd.setLength(1);
dd.append(" some value for dd");
dd.replace(3, 8, str1);
cout << "\n StringBuffer replace() : " << dd << endl;
dd.setLength(1);
dd.append(" some value for dd. A quick brown fox.");
dd.substring(8);
cout << "\n StringBuffer substring(8) : " << dd << endl;
dd.setLength(1);
dd.append(" some value for dd akjla akja kjk");
dd.substring(8, 14);
cout << "\n StringBuffer substring(8) : " << dd << endl;
}
// Exemple de démonstration pour les fonctions de Java parseInt,
// parseLong, floatValue et doubleValue
void java_string_to_numbers()
{
String str1;
int ii, jj = 40, mm = 24;
long kk;
str1 = "342";
cout << "\n string str1 is : " << str1.val() << endl;
ii = Integer.parseInt(str1);
cout << "\n ii is : " << ii << endl;
ii = ii + jj; // add some value
cout << "\n ii after adding " << jj << " is : " << ii << endl;
str1 = "9876543210";
cout << "\n string str1 is : " << str1.val() << endl;
kk = Long.parseLong(str1);
cout << "\n kk is : " << kk << endl;
kk = kk + mm; // add some value
cout << "\n kk after adding " << mm << " is : " << kk << endl;
str1 = "3.1487389876";
cout << "\n string str1 is : " << str1.val() << endl;
// Note : C++ n'accepte pas ceci --> Float myflt = Float.valueOf(str1);
// Remplacement par ...
Float myflt(str1); // Float myflt = Float.valueOf(str1);
float nn = myflt.floatValue();
//cout << "\n float nn is : " << nn << endl;
fprintf(stdout, "\n double nn is : %8.20f \n", nn);
nn = nn + mm; // add some value
//cout << "\n kk after adding " << mm << " is : " << nn << endl;
fprintf(stdout, "\n kk after adding %d is : %8.20f \n", mm, nn);
str1 = "3.1487389876";
cout << "\n string str1 is : " << str1.val() << endl;
// Note : C++ n'accept pas ceci --> Double mydbl = Double.valueOf(str1);
// Remplacement par ...
Double mydbl(str1); // Double mydbl = Double.valueOf(str1);
double pp = mydbl.doubleValue();
//cout << "\n double pp is : " << pp << endl;
fprintf(stdout, "\n double pp is : %8.20f \n", pp);
pp = pp + mm; // add some value
//cout << "\n kk after adding " << mm << " is : " << pp << endl;
fprintf(stdout, "\n kk after adding %d is : %8.20f \n", mm, pp);
}
// Exemple de démonstration pour la classe Java StringTokenizer
void java_string_tokenizer()
{
String results;
// met une expression arithmetique dans une String et cree
// un analyseur/tokenizer pour la string
String mathExpr = "4*3+2/4";
//StringTokenizer st1 = new StringTokenizer(mathExpr, "*+-", true);
StringTokenizer st1(mathExpr, "*+-", true);
// tant qu'il reste des tokens, les afficher
results += "Tokens of mathExpr:\r\n";
while (st1.hasMoreTokens())
{
results = results + st1.nextToken() + "\r\n";
}
cout << "The results : " << results << endl;
// crée une string avec des champs délimités avec des virgules
// et crée un analyseur/tokenizer pour elle
String commas = "field1,field2,field3,and field4";
//StringTokenizer st2 = new StringTokenizer(commas, ",", false);
StringTokenizer st2(commas, ",", true);
// tant qu'il reste des tokens, les afficher
results = "";
results += "Comma-delimited tokens:\r\n";
while (st2.hasMoreTokens())
{
results = results + st2.nextToken() + "\r\n";
}
cout << "The results : " << results << endl;
// crée une string avec des champs délimités avec des virgules
// et crée un analyseur/tokenizer pour elle
String colon = "f1,f2,f3,f4,f5,f6,f7,f8:f9:k1:k2:k3:k4:k5:k6:k7:k8:k9";
//StringTokenizer st3 = new StringTokenizer(colon, ",", false);
StringTokenizer st3(colon, ",", true);
// tant qu'il reste des tokens, les afficher
results = "";
results += "Comma-delimited tokens:\r\n";
for (int ii = 0; st3.hasMoreTokens(); ii++)
{
if (ii == 3)
results = results + st3.nextToken(":") + "\r\n";
else
results = results + st3.nextToken() + "\r\n";
}
cout << "The results : " << results << endl;
}
// Exemple de démonstration de la classe Java StringReader
void java_string_reader()
{
String str1;
str1 = "some test string abcdefgh ijklk m n op EM";
StringReader reader(str1);
char curChar;
while ((curChar = reader.read()) != -1)
{
cout << "curChar : " << curChar << endl;
}
}
// Exemple de démonstration de la classe Java StringWriter
void java_string_writer()
{
String str1;
str1 = "some str";
StringWriter writer;
writer.write("Hello ");
writer.write("xxxWorldxxx", 3, 8);
str1 = writer.toString();
cout << "str1 using toString() : " << str1 << endl;
writer.close();
str1 = writer.toString();
cout << "str1 after doing close() : " << str1 << endl;
str1 = "some str";
writer.write(" Yet another Hello ");
writer.write("xxxxxWorld-widexxx", 5, 15);
str1 = writer.getBuffer();
cout << "str1 using the getBuffer() : " << str1 << endl;
}