OVH Cloud OVH Cloud

A quoi sert String() ?

10 réponses
Avatar
Dominique.Micollet
Bonjour,

Je débute en Java et je commence à me poser des questions
philosophiques :-)

Compte tenu du fait qu'une chaine de classe String n'est pas modifiable,
a quoi peut bien servir le contructeur sans argument String() ?

A faire une chaine vide, certes. Mais pour en faire quoi ?



--
Cordialement

Dominique MICOLLET Email : enlevez le .fr.fr
Universite de Bourgogne
9, Avenue Alain SAVARY BP 47870 Tel : +33/(0)3-80-39-59-27
21078 DIJON CEDEX FRANCE Tfx : +33/(0)3-80-39-68-69

10 réponses

Avatar
Shorty
Pas à grand chose (surtout que "" est pas mal pour représenter la
chaine vide).

Tu remarqueras dans le javadoc de sun : "Note that use of this
constructor is unnecessary since Strings are immutable."
Avatar
kUfa
Ca peut toujours etre utile dans certains cas, enfin pour gagner du
temps?
String tmp = new String();
for( int i = 0; i < 9; ++i )
tmp += " " + i;

Bref, ca evite juste a faire un test du style if( string == null )

/kufa
Avatar
ZeGrunt
Bonjour,

Ca peut toujours etre utile dans certains cas, enfin pour gagner du
temps?
String tmp = new String();
for( int i = 0; i < 9; ++i )
tmp += " " + i;

Bref, ca evite juste a faire un test du style if( string == null )


Moui, mais un StringBuffer est tout de même beaucoup plus adapté.

Un cas d'utilisation possible serait lié à une question de liste
d'Object automatiquement initialisés par introspection sur un
constructeur sans paramètre. Mais c'est sérieusement capilotracté. ;)

A+

ZeGrunt.

Avatar
Kupee
wrote:
Bonjour,

Je débute en Java et je commence à me poser des questions
philosophiques :-)

Compte tenu du fait qu'une chaine de classe String n'est pas modifiable,
a quoi peut bien servir le contructeur sans argument String() ?

A faire une chaine vide, certes. Mais pour en faire quoi ?


Ca sert a la sérialization. Toutes les classes sérializables doivent
avoir un constructeur sans paramètre

Avatar
Eraser Head
kUfa wrote:

Ca peut toujours etre utile dans certains cas, enfin pour gagner du
temps?
String tmp = new String();
for( int i = 0; i < 9; ++i )
tmp += " " + i;

Bref, ca evite juste a faire un test du style if( string == null )

/kufa



Ce qui s'écrit en fait :


String tmp = "";
for( int i = 0; i < 9; ++i )
tmp += " " + i;

ou mieux encore :

StringBuffer sb = new StringBuffer();
for( int i = 0; i < 9; ++i ) {
tmp.append(" ");
tmp.append(i);
}

Bon ok, je sors ;-)

--

GilloS

---------------------------------------------------------------
[...] même si tu comprends pas ce que je dis, tu le comprends
(Jean-Claude Van Damme)
---------------------------------------------------------------

Avatar
Eraser Head
kUfa wrote:

Ca peut toujours etre utile dans certains cas, enfin pour gagner du
temps?
String tmp = new String();
for( int i = 0; i < 9; ++i )
tmp += " " + i;

Bref, ca evite juste a faire un test du style if( string == null )

/kufa



Ce qui s'écrit en fait :


String tmp = "";
for( int i = 0; i < 9; ++i )
tmp += " " + i;

ou mieux encore :

StringBuffer sb = new StringBuffer();
for( int i = 0; i < 9; ++i ) {
tmp.append(" ");
tmp.append(i);
}

Bon ok, je sors ;-)

--

GilloS

---------------------------------------------------------------
[...] même si tu comprends pas ce que je dis, tu le comprends
(Jean-Claude Van Damme)
---------------------------------------------------------------

Avatar
cho7
"Eraser Head" a écrit dans le message de news:

ou mieux encore :

StringBuffer sb = new StringBuffer();
for( int i = 0; i < 9; ++i ) {
tmp.append(" ");
tmp.append(i);
}


Bon beh poussons le vice un chouilla plus loin alors:

StringBuffer sb = new StringBuffer();
for( int i = 0; i < 9; ++i )
tmp.append(" ").append(i);

:-p

Avatar
Bruno CAUSSE
dans l'article 432aa2fe$0$2957$, cho7 à
a écrit le 16/09/05 12:49 :

StringBuffer sb = new StringBuffer();


Et avec tmp, c'est pas mieux?

for( int i = 0; i < 9; ++i )
tmp.append(" ").append(i);


Puis String sb = tmp.toString();

Sinon encore plus simple

String sb = " 0 1 2 3 4 5 6 7 8";-)

Avatar
Kupee
cho7 wrote:
Bon beh poussons le vice un chouilla plus loin alors:

StringBuffer sb = new StringBuffer();
for( int i = 0; i < 9; ++i )
tmp.append(" ").append(i);


Si j'étais pointilleux je ferais tmp.append(' ').append(i);

Avatar
Delf
Bruno CAUSSE wrote:

String sb = " 0 1 2 3 4 5 6 7 8";-)


Je ne sais pas si les caractères ;-) vont passer :-)

--
Delf