Mais là j'aimerais qu'il retourne 4 aussi. J'ai besoin de savoir si c'est vide. (je suis en JAVA 1.3 donc le split ne marche pas)
Des idées ? Merci d'avance ...
Je serais à ta place, je referais ma méthode countToken avec le comportement demandé... Ca doit prendre 2 ou 3 lignes. (idem pour les méthodes d'accès que tu utiliseras après)
Renotm wrote:
Bonjour,
voilà mon petit pb :
j'ai une ligne dans le style :
String line1 = "toto;titi;tata;tutu";
mon but est de couper cette ligne lorsque l'on rencontre un ";"
j'ai donc fait tout bêtement :
StringTokenizer st1 = new StringTokenizer(line1, ";");
System.out.println(st1.countToken()); // Retourne 4
Mais là j'aimerais qu'il retourne 4 aussi. J'ai besoin de savoir si
c'est vide.
(je suis en JAVA 1.3 donc le split ne marche pas)
Des idées ?
Merci d'avance ...
Je serais à ta place, je referais ma méthode countToken avec le comportement
demandé... Ca doit prendre 2 ou 3 lignes.
(idem pour les méthodes d'accès que tu utiliseras après)
Mais là j'aimerais qu'il retourne 4 aussi. J'ai besoin de savoir si c'est vide. (je suis en JAVA 1.3 donc le split ne marche pas)
Des idées ? Merci d'avance ...
Je serais à ta place, je referais ma méthode countToken avec le comportement demandé... Ca doit prendre 2 ou 3 lignes. (idem pour les méthodes d'accès que tu utiliseras après)
Renotm
Je serais à ta place, je referais ma méthode countToken avec le comportement
demandé... Ca doit prendre 2 ou 3 lignes. (idem pour les méthodes d'accès que tu utiliseras après)
Bin oui je veux bien, mais si le countTokens retourne 2 ce n'est pas parce que cette methode ne marche pas c'est parce que le tokenizer à zappé les chaines vides.
Je n'ai pas trouvé comment lui dire de me laisser les chaines vides. J'ai écris une vieille function a base d'indexOf et de substring pour pallier ce pb mais je trouve ça moyen ...
... :o(
-- http://www.expo7.com - Exposez Vos Photos
Je serais à ta place, je referais ma méthode countToken avec le
comportement
demandé... Ca doit prendre 2 ou 3 lignes.
(idem pour les méthodes d'accès que tu utiliseras après)
Bin oui je veux bien, mais si le countTokens retourne 2 ce n'est pas parce
que cette methode ne marche pas c'est parce que le tokenizer à zappé les
chaines vides.
Je n'ai pas trouvé comment lui dire de me laisser les chaines vides. J'ai
écris une vieille function a base d'indexOf et de substring pour pallier ce
pb mais je trouve ça moyen ...
Je serais à ta place, je referais ma méthode countToken avec le comportement
demandé... Ca doit prendre 2 ou 3 lignes. (idem pour les méthodes d'accès que tu utiliseras après)
Bin oui je veux bien, mais si le countTokens retourne 2 ce n'est pas parce que cette methode ne marche pas c'est parce que le tokenizer à zappé les chaines vides.
Je n'ai pas trouvé comment lui dire de me laisser les chaines vides. J'ai écris une vieille function a base d'indexOf et de substring pour pallier ce pb mais je trouve ça moyen ...
... :o(
-- http://www.expo7.com - Exposez Vos Photos
Chewee
Renotm wrote:
Je serais à ta place, je referais ma méthode countToken avec le comportement demandé... Ca doit prendre 2 ou 3 lignes. (idem pour les méthodes d'accès que tu utiliseras après)
Bin oui je veux bien, mais si le countTokens retourne 2 ce n'est pas parce que cette methode ne marche pas c'est parce que le tokenizer à zappé les chaines vides.
Je n'ai pas trouvé comment lui dire de me laisser les chaines vides. J'ai écris une vieille function a base d'indexOf et de substring pour pallier ce pb mais je trouve ça moyen ...
... :o(
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
Renotm wrote:
Je serais à ta place, je referais ma méthode countToken avec le
comportement demandé... Ca doit prendre 2 ou 3 lignes.
(idem pour les méthodes d'accès que tu utiliseras après)
Bin oui je veux bien, mais si le countTokens retourne 2 ce n'est pas
parce que cette methode ne marche pas c'est parce que le tokenizer à
zappé les chaines vides.
Je n'ai pas trouvé comment lui dire de me laisser les chaines vides.
J'ai écris une vieille function a base d'indexOf et de substring pour
pallier ce pb mais je trouve ça moyen ...
... :o(
C'est pour ça que je te dis de refaire ta propre méthode.
Si le countTokens zappe les chaines vides, c'est parce que c'est son
comportement.
Si le comportement de cette méthode ne corresponds pas à ce que tu as
besoin, c'est que ce n'est pas la bonne méthode.
Je serais à ta place, je referais ma méthode countToken avec le comportement demandé... Ca doit prendre 2 ou 3 lignes. (idem pour les méthodes d'accès que tu utiliseras après)
Bin oui je veux bien, mais si le countTokens retourne 2 ce n'est pas parce que cette methode ne marche pas c'est parce que le tokenizer à zappé les chaines vides.
Je n'ai pas trouvé comment lui dire de me laisser les chaines vides. J'ai écris une vieille function a base d'indexOf et de substring pour pallier ce pb mais je trouve ça moyen ...
... :o(
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
Renotm
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal. Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire les chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais pas si c'est plus clair ...
C'est pour ça que je te dis de refaire ta propre méthode.
Si le countTokens zappe les chaines vides, c'est parce que c'est son
comportement.
Si le comportement de cette méthode ne corresponds pas à ce que tu as
besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal.
Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour
illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire les
chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais
pas si c'est plus clair ...
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal. Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire les chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais pas si c'est plus clair ...
Chewee
Renotm wrote:
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal. Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire les chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais pas si c'est plus clair ...
Oui, c'est très clair. C'est pour ça que je disais aussi qu'il faudrait que tu refasses aussi tes methodes d'accès (nextToken()). Peut-être que c'est le tokenizer qui n'est pas adapté à tes besoins.
Renotm wrote:
C'est pour ça que je te dis de refaire ta propre méthode.
Si le countTokens zappe les chaines vides, c'est parce que c'est son
comportement.
Si le comportement de cette méthode ne corresponds pas à ce que tu as
besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal.
Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode
pour illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui
vire les chaines vides, pas la méthode countToken qui ne les récupere
pas. Je sais pas si c'est plus clair ...
Oui, c'est très clair.
C'est pour ça que je disais aussi qu'il faudrait que tu refasses aussi tes
methodes d'accès (nextToken()).
Peut-être que c'est le tokenizer qui n'est pas adapté à tes besoins.
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal. Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire les chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais pas si c'est plus clair ...
Oui, c'est très clair. C'est pour ça que je disais aussi qu'il faudrait que tu refasses aussi tes methodes d'accès (nextToken()). Peut-être que c'est le tokenizer qui n'est pas adapté à tes besoins.
Pascal Pizeine
Bonjour,
Tu as un des constructeurs de StringTokenizer qui permet d'indiquer que l'on souhaite que le séparateur soit considéré comme un token. Ca devrait te permettre de faire ton traitement. Si 2 tokens consécutifs sont des délimiteurs tu as un champ vide.
Pascal
"Renotm" <renotm @ free.fr> a écrit dans le message de news:40b4b1f5$0$13921$
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal. Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire les
chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais pas si c'est plus clair ...
Bonjour,
Tu as un des constructeurs de StringTokenizer qui permet d'indiquer que l'on
souhaite que le séparateur soit considéré comme un token. Ca devrait te
permettre de faire ton traitement. Si 2 tokens consécutifs sont des
délimiteurs tu as un champ vide.
Pascal
"Renotm" <renotm @ free.fr> a écrit dans le message de
news:40b4b1f5$0$13921$636a15ce@news.free.fr...
C'est pour ça que je te dis de refaire ta propre méthode.
Si le countTokens zappe les chaines vides, c'est parce que c'est son
comportement.
Si le comportement de cette méthode ne corresponds pas à ce que tu as
besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal.
Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour
illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire
les
chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais
pas si c'est plus clair ...
Tu as un des constructeurs de StringTokenizer qui permet d'indiquer que l'on souhaite que le séparateur soit considéré comme un token. Ca devrait te permettre de faire ton traitement. Si 2 tokens consécutifs sont des délimiteurs tu as un champ vide.
Pascal
"Renotm" <renotm @ free.fr> a écrit dans le message de news:40b4b1f5$0$13921$
C'est pour ça que je te dis de refaire ta propre méthode. Si le countTokens zappe les chaines vides, c'est parce que c'est son comportement. Si le comportement de cette méthode ne corresponds pas à ce que tu as besoin, c'est que ce n'est pas la bonne méthode.
En fait je pense que je m'exprime mal. Le countTokens me retourne ce qu'il y a dans le tokenizer.
Ce n'est pas ca qui ne me convient pas. J'ai mis ici cette methode pour illuster le pb. Mais si je fais :
while (st.hasMoreTokens()) {
system.out.println("n" + st.nextToken());
}
C'est pareil, je n'ai pas les chaines vides. c'est le tokenizer qui vire les
chaines vides, pas la méthode countToken qui ne les récupere pas. Je sais pas si c'est plus clair ...
Pascal Pizeine
Oui, c'est très clair. C'est pour ça que je disais aussi qu'il faudrait que tu refasses aussi tes methodes d'accès (nextToken()). Peut-être que c'est le tokenizer qui n'est pas adapté à tes besoins.
Effectivement d'ailleurs je viens juste de m'apercevoir que dans la doc de StringTokenizer il y a : StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
La méthode split a l'air de bien convenir à ce que tu veux faire.
Pascal
Oui, c'est très clair.
C'est pour ça que je disais aussi qu'il faudrait que tu refasses aussi tes
methodes d'accès (nextToken()).
Peut-être que c'est le tokenizer qui n'est pas adapté à tes besoins.
Effectivement d'ailleurs je viens juste de m'apercevoir que dans la doc de
StringTokenizer il y a :
StringTokenizer is a legacy class that is retained for compatibility reasons
although its use is discouraged in new code. It is recommended that anyone
seeking this functionality use the split method of String or the
java.util.regex package instead.
La méthode split a l'air de bien convenir à ce que tu veux faire.
Oui, c'est très clair. C'est pour ça que je disais aussi qu'il faudrait que tu refasses aussi tes methodes d'accès (nextToken()). Peut-être que c'est le tokenizer qui n'est pas adapté à tes besoins.
Effectivement d'ailleurs je viens juste de m'apercevoir que dans la doc de StringTokenizer il y a : StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
La méthode split a l'air de bien convenir à ce que tu veux faire.
Pascal
Renotm
Bonjour,
Tu as un des constructeurs de StringTokenizer qui permet d'indiquer que l'on
souhaite que le séparateur soit considéré comme un token. Ca devrait te permettre de faire ton traitement. Si 2 tokens consécutifs sont des délimiteurs tu as un champ vide.
Pascal
Oui c'est ce que j'ai fait finalement mais on perd un peu l'interet de ces structures si l'on doit faire des tests par la suite.
Je réponds ici au post que tu as fait plus haut. Le split ... c'est bien mon malheur, c'est la methode que j'ai utilisé pour develloper mais c'est du 1.4 et l'environnement sur lequel va tourner ma class est en 1.3 :o(
Merci pour tout !
Reno
Bonjour,
Tu as un des constructeurs de StringTokenizer qui permet d'indiquer que
l'on
souhaite que le séparateur soit considéré comme un token. Ca devrait te
permettre de faire ton traitement. Si 2 tokens consécutifs sont des
délimiteurs tu as un champ vide.
Pascal
Oui c'est ce que j'ai fait finalement mais on perd un peu l'interet de ces
structures si l'on doit faire des tests par la suite.
Je réponds ici au post que tu as fait plus haut. Le split ... c'est bien mon
malheur, c'est la methode que j'ai utilisé pour develloper mais c'est du 1.4
et l'environnement sur lequel va tourner ma class est en 1.3 :o(
Tu as un des constructeurs de StringTokenizer qui permet d'indiquer que l'on
souhaite que le séparateur soit considéré comme un token. Ca devrait te permettre de faire ton traitement. Si 2 tokens consécutifs sont des délimiteurs tu as un champ vide.
Pascal
Oui c'est ce que j'ai fait finalement mais on perd un peu l'interet de ces structures si l'on doit faire des tests par la suite.
Je réponds ici au post que tu as fait plus haut. Le split ... c'est bien mon malheur, c'est la methode que j'ai utilisé pour develloper mais c'est du 1.4 et l'environnement sur lequel va tourner ma class est en 1.3 :o(
Merci pour tout !
Reno
Josef Garvi
Ce n'est pas optimisé (du code Delphi traduit en Java), mais je crois que ça t'arrangera:
/* * Created on Nov 19, 2003 */ package org.edenfoundation.util;
/** * String-handling utilities. * * @author Josef Garvi () */ public class StringExtra {
/** * counts the number of occurences of a given character in a string. * * @param c * @param s * @return */ public static int charOccurences(char c, String s) {
int occs = 0;
int x = -1; x = s.indexOf(c, x + 1); while (x >= 0) { occs++; x = s.indexOf(c, x + 1); }
return occs; }
/** * appends a token to a token-array string */ public static String tokenAppend(String s, String newToken) { return tokenAppend(s, newToken, ','); } public static String tokenAppend(String s, String newToken, char separator) { return (s.length() > 0 ? s + separator + newToken : newToken); } /** * checks if a specific token is present in an token-array string */ public static boolean hasToken(String s, String token) { return hasToken(s, token, ','); } public static boolean hasToken(String s, String token, char separator) { String code; int x = s.indexOf(separator); while (x != -2) { if (x > 0) code = s.substring(0, x); else { code = s; s = ""; } if (code.equals(token)) return true; if (s.length() == 0) break; s = s.substring(x+1); x = s.indexOf(separator); } return false; } /** * counts the number of tokens in an token-array string * * NOTE: Can use class StringTokenizer instead of this method! */ public static int tokenCount(String s) { return tokenCount(s, ','); } public static int tokenCount(String s, char separator) { return charOccurences(separator, s) + 1; } /** * checks if a specific token is present in an token-array string * * NOTE: Can use class StringTokenizer instead of this method! */ public static String getToken(String s, int tokenNum) { return getToken(s, tokenNum, ','); } public static String getToken(String s, int tokenNum, char separator) { String code; int i = 0; int x = s.indexOf(separator); while (x != -2) { if (x > 0) code = s.substring(0, x); else { code = s; s = ""; } if (i == tokenNum) return code; i++; if (s.length() == 0) break; s = s.substring(x+1); x = s.indexOf(separator); } return ""; }
/** * deletes all occurences of a given character from a string. */ static String deleteCharOccurences(String str, char c) { final int len = str.length(); StringBuffer buff = new StringBuffer(len);
int mark = 0; int pos = 0;
while ((pos = str.indexOf(c, pos)) != -1) { buff.append(str.substring(mark, pos)); mark = ++pos; }
buff.append(str.substring(mark, len));
return buff.toString(); }
/** * Checks if two string variables are either both null or equal. */ public static boolean equalOrBothNull(String s1, String s2) { if ((s1 == null) && (s2 == null)) return true; if ((s1 == null) != (s2 == null)) return false; return s1.equals(s2); }
}
-- Josef Garvi
"Reversing desertification through drought tolerant trees" http://www.eden-foundation.org/
new income - better environment - more food - less poverty
Ce n'est pas optimisé (du code Delphi traduit en Java), mais je crois que
ça t'arrangera:
/*
* Created on Nov 19, 2003
*/
package org.edenfoundation.util;
/**
* String-handling utilities.
*
* @author Josef Garvi (josef@eden-foundation.org)
*/
public class StringExtra {
/**
* counts the number of occurences of a given character in a string.
*
* @param c
* @param s
* @return
*/
public static int charOccurences(char c, String s) {
int occs = 0;
int x = -1;
x = s.indexOf(c, x + 1);
while (x >= 0) {
occs++;
x = s.indexOf(c, x + 1);
}
return occs;
}
/**
* appends a token to a token-array string
*/
public static String tokenAppend(String s, String newToken) {
return tokenAppend(s, newToken, ',');
}
public static String tokenAppend(String s, String newToken, char separator) {
return (s.length() > 0 ? s + separator + newToken : newToken);
}
/**
* checks if a specific token is present in an token-array string
*/
public static boolean hasToken(String s, String token) {
return hasToken(s, token, ',');
}
public static boolean hasToken(String s, String token, char separator) {
String code;
int x = s.indexOf(separator);
while (x != -2) {
if (x > 0)
code = s.substring(0, x);
else {
code = s;
s = "";
}
if (code.equals(token))
return true;
if (s.length() == 0) break;
s = s.substring(x+1);
x = s.indexOf(separator);
}
return false;
}
/**
* counts the number of tokens in an token-array string
*
* NOTE: Can use class StringTokenizer instead of this method!
*/
public static int tokenCount(String s) {
return tokenCount(s, ',');
}
public static int tokenCount(String s, char separator) {
return charOccurences(separator, s) + 1;
}
/**
* checks if a specific token is present in an token-array string
*
* NOTE: Can use class StringTokenizer instead of this method!
*/
public static String getToken(String s, int tokenNum) {
return getToken(s, tokenNum, ',');
}
public static String getToken(String s, int tokenNum, char separator) {
String code;
int i = 0;
int x = s.indexOf(separator);
while (x != -2) {
if (x > 0)
code = s.substring(0, x);
else {
code = s;
s = "";
}
if (i == tokenNum)
return code;
i++;
if (s.length() == 0) break;
s = s.substring(x+1);
x = s.indexOf(separator);
}
return "";
}
/**
* deletes all occurences of a given character from a string.
*/
static String deleteCharOccurences(String str, char c)
{
final int len = str.length();
StringBuffer buff = new StringBuffer(len);
int mark = 0;
int pos = 0;
while ((pos = str.indexOf(c, pos)) != -1)
{
buff.append(str.substring(mark, pos));
mark = ++pos;
}
buff.append(str.substring(mark, len));
return buff.toString();
}
/**
* Checks if two string variables are either both null or equal.
*/
public static boolean equalOrBothNull(String s1, String s2) {
if ((s1 == null) && (s2 == null))
return true;
if ((s1 == null) != (s2 == null))
return false;
return s1.equals(s2);
}
}
--
Josef Garvi
"Reversing desertification through drought tolerant trees"
http://www.eden-foundation.org/
new income - better environment - more food - less poverty
Ce n'est pas optimisé (du code Delphi traduit en Java), mais je crois que ça t'arrangera:
/* * Created on Nov 19, 2003 */ package org.edenfoundation.util;
/** * String-handling utilities. * * @author Josef Garvi () */ public class StringExtra {
/** * counts the number of occurences of a given character in a string. * * @param c * @param s * @return */ public static int charOccurences(char c, String s) {
int occs = 0;
int x = -1; x = s.indexOf(c, x + 1); while (x >= 0) { occs++; x = s.indexOf(c, x + 1); }
return occs; }
/** * appends a token to a token-array string */ public static String tokenAppend(String s, String newToken) { return tokenAppend(s, newToken, ','); } public static String tokenAppend(String s, String newToken, char separator) { return (s.length() > 0 ? s + separator + newToken : newToken); } /** * checks if a specific token is present in an token-array string */ public static boolean hasToken(String s, String token) { return hasToken(s, token, ','); } public static boolean hasToken(String s, String token, char separator) { String code; int x = s.indexOf(separator); while (x != -2) { if (x > 0) code = s.substring(0, x); else { code = s; s = ""; } if (code.equals(token)) return true; if (s.length() == 0) break; s = s.substring(x+1); x = s.indexOf(separator); } return false; } /** * counts the number of tokens in an token-array string * * NOTE: Can use class StringTokenizer instead of this method! */ public static int tokenCount(String s) { return tokenCount(s, ','); } public static int tokenCount(String s, char separator) { return charOccurences(separator, s) + 1; } /** * checks if a specific token is present in an token-array string * * NOTE: Can use class StringTokenizer instead of this method! */ public static String getToken(String s, int tokenNum) { return getToken(s, tokenNum, ','); } public static String getToken(String s, int tokenNum, char separator) { String code; int i = 0; int x = s.indexOf(separator); while (x != -2) { if (x > 0) code = s.substring(0, x); else { code = s; s = ""; } if (i == tokenNum) return code; i++; if (s.length() == 0) break; s = s.substring(x+1); x = s.indexOf(separator); } return ""; }
/** * deletes all occurences of a given character from a string. */ static String deleteCharOccurences(String str, char c) { final int len = str.length(); StringBuffer buff = new StringBuffer(len);
int mark = 0; int pos = 0;
while ((pos = str.indexOf(c, pos)) != -1) { buff.append(str.substring(mark, pos)); mark = ++pos; }
buff.append(str.substring(mark, len));
return buff.toString(); }
/** * Checks if two string variables are either both null or equal. */ public static boolean equalOrBothNull(String s1, String s2) { if ((s1 == null) && (s2 == null)) return true; if ((s1 == null) != (s2 == null)) return false; return s1.equals(s2); }
}
-- Josef Garvi
"Reversing desertification through drought tolerant trees" http://www.eden-foundation.org/
new income - better environment - more food - less poverty