First off, hello I started learning Java this past Sunday, and on Tuesday made my first little program. I know no one that also knows Java (let alone any programming language), and I am learning on my own, so I was hoping I could get some feedback on this first little program. I am looking for any tips on things I might have done wrong, or could do better.
The program is a Random String Generator; it takes user input (type of string, and length), and then generates a string with their requested method. Its extremly simplistic, but had some interesting coding challenges considering I only just did 'Hello World' a few days back xP I actually already have quite a few additions and modifications I want to make to it, but wanted to get a bit of feedback on it otherwise.
I had only used PasteBin because it was a bit of code, but here ya go. Oh and it's a slight bit different than the PasteBin version. I added the ability to choose the first character type, and fixed some minor issues.
Thank you, but those lines are long. I have broken the worst offenders, so you can see how to do it, but they are probably still a bit too long.
Most of your methods are much too long, too. They need breaking into smaller methods.
You have all sorts of magic numbers floating around. Those are numbers which appear out of thin air with no explanation. What is 24? If you mean the length of the array, use the length of the array.
Never use == false or == true. They are poor style and error‑prone. Write if(b)... or if(!b)... Classes have names starting with CapitalLetters. numGen is a poor choice. So is rNum a poor choice for a variable name. What do the errorCheck arrays mean? Their names are confusing at best.
Only ever use \r or \n if you have been told to use the CR and LF characters. Use String.format and the %n tag instead.
You need more whitespace in your code.
Corey Eacret wrote:The program is a Random String Generator; it takes user input (type of string, and length), and then generates a string with their requested method. Its extremly simplistic, but had some interesting coding challenges considering I only just did 'Hello World' a few days back xP I actually already have quite a few additions and modifications I want to make to it, but wanted to get a bit of feedback on it otherwise.
OK, here's a biggie:
When you're starting out. Start small. Your spec contains all sorts of "bells and whistles" that it really doesn't need - at least to start with.
1. Try generating a string of random letters to start with: That only requires the user to enter one thing - length - so you can concentrate on the problem you're trying to solve, not all that user input. You can add all the other "nice to haves" in after you've got THAT working.
2. Separate all that user input stuff from the business of creating a random String - and the easiest way to do that is to create a separate class whose ONLY business is to create random Strings, given a length.
3. Use the Random class (java.util.Random ←click); not Math.random() - it's much simpler.
Just to get you started; this is what my class definition would look like if I was trying it:Do you see how this might help?
Now you have a class that is ONLY concerned with generating strings. And like I say: start out simple. Make sure it can generate a String of random letters (or digits) first; then add extra stuff. And add it incrementally - don't add six new rules for fancy prefixes or suffixes in straight off the bat.
Deal with one thing at a time.
"Leadership is nature's way of removing morons from the productive flow" - Dogbert
Articles by Winston can be found here
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop