Hope this helps: my wife and I vacationed on St. Thomas
last November; our visit to St. John was by far the highlight
of our trip.
From the Charlotte Amalie dock, take a taxi to Red Hook.
Should cost about $16 for two or more passengers; just
tell the driver you're taking the Red Hook ferry to St. John
and he'll drop you off right at the ferry dock.
Ferries to St. John are $3 each way per person; trips take about
15-20 minutes and ferries leave about every hour.
Once you get to St. John, you'll need to rent a jeep. There are
several rental agencies to choose from; we rented from
Delbert Hill, which is just a short walk from the Cruz Bay
ferry terminal. We didn't make advance reservations,
but you might want to consider calling ahead before
your arrival. Jeeps were around $70 per day.
Make sure to stop at several of the beaches you'll pass after
leaving Cruz Bay. Trunk Bay beach is probably the best known,
and it has great snorkeling, but can be a little crowded when
the cruise ships come in. Trunk has lifeguards, a full snack bar,
souvenir shop and snorkel-gear rental; there's also a small
entrance fee. Hawksnest beach, which you'll pass before
reaching Trunk, was very quiet and uncrowded on our visit, and
it also had great scenery and snorkeling. There are bathroom and
picnic facilities there.
If you have a chance, continue driving beyond Trunk to the
Annaberg Sugar Plantation. It's a bit of a hike, but the view from
the plantation ruins is well worth it.
Here's a link to more info; have a great trip!
http://www.usvi-on-line.com
Bruce