Warum setzt Du die Variable b eigentlich in eckige Klammern? Was ist der Sinn davon? Warum erzeugst Du ein Array-Literal, wenn Du kein Array brauchst?
Das funktioniert nur deshalb "zufällig", weil [b].toString() (oder wie auch immer der Mechanismus heißt, der das Array in einen String umsetzt) die kommaseparierte Liste der Inhalte des Arrays ergibt - bei nur einem Wert ist diese Liste identisch mit dem Wert.
Danke für den Hinweis, wurde sofort bereinigt ;)