I will try my best. A hub and a switch have similar basic capabilites. A hub is much cheaper than a switch but the disadvantage of using a hub over a switch is a hub will equally divide the bandwidth among all the connected nodes whereas a switch will provide equal bandwidth among all connected nodes.
I.E. You have a 100mb/s line coming in to a hub that has 10 nodes connected to it. Each node will get 10mb/s of bandwidth. If a switch is used instead of the hub, each node will get the full 100mb/s of bandwidth from the originating connection.
A switch has many more features such as VLANs and different modes of packet forwarding (packet switching? can't remember >_<), but for the basic concept of creating more available ports for nodes to be connected, they both will do that job. Its up to your discretion. (I.E. if you have many network printers, they can all be connected with a hub since bandwidth isn't as heavy as a workstation's).
Again, a switch is much more expensive than a hub and there are some hubs that don't even need to be plugged in.
A router is what separates areas of a network, and the entire network from others areas or other networks. The router deals with the internet connection coming into the network and IP addressing.
Of course, there is much more to it than that, but those are the basics. If you have a single small home network, and you need more ports, do not use a router. (Although it is possible to daisy chain routers or set one up to act as a switch) You will get more ports for less money buying a switch than a router.
OSI Layers of operation:
Hub - Layer 1 (Physical)
Switch - Layer 2 (Data-Link)
Router - Layer 3 (Network)