All sentences may give negative impression to the other end. Mainly due to lack of particles. (the one which need to follow the word '日本語')日本語話しません。<A bit rude.>
日本語できません。 <Depends how you pronounce....>
I understand the meanings and differences of each statement, but I don't know if there's a time when one shouldn't use them.
I have always said :Nihongo-wa hanase masen.
Japanese-TOPIC ableToSpeak politeNot.
This 'ga' makes a faint difference from 'wa' or 'ha'.I have always said :
Nihongo-ga hanasemasen...but I think it is the same, doesn't it?
You can also replace hanasemasen by dekimasen and hanasemasu by dekimasu which will render the "can/cannot" part."I cannot speak Japanese, but I can speak Indonesian."
'Nihongo-ga hanasemasen keredomo Indonesia go ha hanasemasu/dekimasu.