0

J'ai récemment écrit un programme pour convertir une chaîne d'infixe en post-fix en java! Pour cela j'ai utilisé deux chaînes 's' et 'p'. J'ai initialisé les deux chaînes avec 'NULL'. Ensuite, j'ai obtenu la valeur de s de l'utilisateur en utilisant la classe Scanner.Comment initialiser une chaîne dans Java sans provoquer l'initialisation à causer des problèmes dans le programme?

s=s1.nextLine(); 

donc si utilisateur d'entrer "a+b", alors s a la valeur "a+b". Notez que 'NULL' n'est plus la partie de la chaîne!

Maintenant, je manipule p en utilisant l'opérateur de concaténation '+' comme:

p = p + '*'; 

je reçois ma chaîne post-fix: -à-dire

ab+. 

Le problème est que cette fois, NULL ne pas disparaître! La valeur de p est:

"nullab+" au lieu de "ab+".

Maintenant, je sais que mon opérateur de concaténation pose des problèmes! Il ajoute à la chaîne! Mais java [eclipse indigo] ne me laisse pas utiliser un opérateur sans l'initialiser en premier! Que dois-je faire? S'il vous plaît aider!

Merci

Anuj Kalra

+0

Y a-t-il une raison pour ne pas donner une valeur init? une chaîne vide est une valeur d'init valide. – porfiriopartida

Répondre

3

Vous pouvez initialiser la chaîne à une chaîne vide pour commencer:

String str = ""; 

Le problème avec null est que concaténation de chaîne avec une référence null convertira à "null" chaîne, puis effectuez la concaténation. Imaginez null.toString() obtiendra "null"

+0

WOW! Je pensais que ce n'était pas autorisé! J'ai fait comme tu l'as dit! Inutile de dire que ça a marché! Merci beaucoup! Vraiment aimé votre explication! - Merci encore une fois! – user2839702

Questions connexes