This is due to not specifying the padding mechanism that has to be used; what you do is leaving the padding mechanism up to the provider, in this case Bouncy. Bouncy seems to default on using no padding mechanism.
In that case the result of the "RSA" operation is simply the number you get when performing the modular exponentiation (with the private exponent). As a number is not a byte array, it has to be transformed into one. As the number of initial zero's is not known for a number, those are simply stripped off.
To avoid this (and use RSA as it is defined, RSA requires padding), try and use "RSA/ECB/PKCS1Padding"
or "RSA/ECB/OAEPWithSHA-1AndMGF1Padding"
if you want a more modern/secure version. RSA without padding is known to be insecure.
Just imagine what happens if the plaintext converts to the number 1. If modular exponentiation is performed with the public exponent, the result is still simply 1. Obviously, that's not how RSA was intended.
Without randomized padding, encryption also has the nasty property of encrypting to the same result for identical ciphertext (encrypting "yes"
or "no"
would be easy enough to distinguish if you have a known ciphertext for "yes"
).