Clean code is a particularly subjective phrase, however looking at what you have, the first thing I would advise would be to decompose your singel main method into smaller methods. These methods should do exactly one thing, and return a result. If you start down that road, your main method might begin to look something like this:
Once you start decomposing your program into smaller units, you usually end up with methods that are smaller, and easier to understand (and
test).
Edit: Ernest beat me to the punch!