Bonjour,
est-il possible de faire une fonction qui modifie une chaîne passé en paramètre ?
J'ai essayé le code ci-dessus mais sans succès...Code:
1
2
3
4
5 void maFx( String str ) { str +=" ajout" ; }
Version imprimable
Bonjour,
est-il possible de faire une fonction qui modifie une chaîne passé en paramètre ?
J'ai essayé le code ci-dessus mais sans succès...Code:
1
2
3
4
5 void maFx( String str ) { str +=" ajout" ; }
Non, dans ce cas il faut que tu retournes ta chaîne:Citation:
Envoyé par g0up1l
Code:
1
2
3 String maFx(String str) { return str + " ajout"; }
ok mais si j'avais prévu un code retour ?
Quoi par exemple?Citation:
Envoyé par g0up1l
(un exemple concret, pour une solution concrète) ;)
Exemple : pour savoir si la chaîne a été modifiée.
Code:
1
2
3
4
5
6
7
8
9
10
11 boolean maFx( Sting str ) { boolean vRet = false ; if( str.equals("bonjour") ) { str += " aurevoir" ; vRet = true ; } return vRet ; }
Il n'est pas possible de modifier une instance de String qui est une classe immuable (cf Classes et objets immuables).
C'est pour moi une vision procédurale (comme en C, où tu ferais comme la méthode que tu as donné), que tu essaies de transposer telle quelle dans un monde objet...Code:
1
2
3
4
5
6
7 boolean doitEtreModifiee(String s) { return "bonjour".equals(s); } String maFx(String s) { return s + " au revoir"; }
En pratique, on n'aurait pas (jamais?) besoin à la fois de modifier une chaîne et de savoir si elle a bien été modifiée...
Sinon il faut faire (pour faire proprement) un Holder, mais bon pour ce petit problème je doute que ça soit une solution satisfaisante...
Ou alors tu passes en paramètre de maFX un StringBuilder, comme ça tu peux modifier directement le StringBuilder (contrairement à String) grâce par exemple aux méthodes append()...
Plus d'explications dans ces cours et tutoriels pour bien apprendre Java : http://java.developpez.com/cours/
voila une info qu'elle est bonne à savoirCitation:
Envoyé par le y@m's