By train is actually faster than driving but a lot more expensive - probably $90 each way.
Take the Amtrak from Union Station in DC - it stops in Trenton. If you are going to Princeton from Trenton, you can get New Jersey Rail (NJT) tickets at the Trenton Stop - a ticket to Princeton should cost you about $5 -check on (http://www.njtransit.com).
From Trenton, the NJT rail stops first at Hamilton then Princeton Junction - you get off at Princeton Junction and either take a cab into Princeton (about $15) or take a connector train into Princeton (probably 10 minutes).
I don't know about buses.
|