It sounds like the command-line is incidental to the problem you are trying to solve. You can write your public class to take a
string agrument, with you can then use in your program. But it sounds like that is not realy the part that has you stumped.
For the other part, the trick will be to work with the unicode values of the characters rather than the characters themselves. You could:
1) validate the length of the string. If it is less than six characters, display an error.
2) split up the string into an array.
3) from 0 to 2 if the unicode values don't indicate letters, display an error.
4) from 3 to 5 if the unicode values don't indicate numbers, display an error.
5) start at 5 and increment. Don't increment the number. Increment its unicode value. If any incrementation causes the value to exceed your range, set it to the minimum value in the range and increment the value to it's left. Using the unicode values will make this logic work for the numbers and letters the same way.
For example, you gave wfz999. Start here wfz99(9). The unicode value for 9 is 57. Your acceptable range for numbers will be from 48 to 57 ( 0 to 9 ). Since 58 is outside the range, make it be a 48 instead and add one to the previous number. wfz9(9)0. Now you have to do the same thing two more times. You will end up with wf(z)000. You will now add one to your z's unicode, which is 122. As your range for letters is 97 to 122 (a to z) you will have to make your z be a 97 and add one to the previous letter. Now you have w(f)a000. Adding one to your f yields (w)ga000. As g is 103 and in the acceptable range, you are now done incrementing and your result is wga000.
You should probably make some decision about the case of your letters and convert everything to upper or lower case before trying to increment. Otherwise you will first have to figure out your case and then increment accordingly, using a different range of acceptable values.