I don't normally ask for help with homework, but my current Java professor actually encourages students to seek help, because as in a corporate environment, you aren't working alone.
Anyway, here's the problem text:
Write a program that checks the properness of a given variable name. More specifically, your program should specify whether a user-entered variable name is (1) illegal, (2) legal, but uses poor style, or (3) good. There are different opinions as to what constitutes good style for a variable name. For this program, check for good style using these rules:
Only use letters and digits.
Use a lowercase letter for the first character.
You dont need to check for an uppercase letter for the first letter in the second word, third word, etc.
Sample session:
This program checks the properness of a proposed Java variable name.
Enter a variable name (q to quit): streetAddress2
Good!
Enter a variable name (q to quit): street address2
Illegal.
Enter a variable name (q to quit): StreetAddress2
Legal, but uses poor style.
Enter a variable name (q to quit): 2ndStreetAddress
Illegal.
Enter a variable name (q to quit): street$address$2
Legal, but uses poor style.
Enter a variable name (q to quit): q]
now, I don't know why, but the solution to this is eluding me to a point of insanity!
This is what I have, but it doesn't work!
Anyway, here's the problem text:
Write a program that checks the properness of a given variable name. More specifically, your program should specify whether a user-entered variable name is (1) illegal, (2) legal, but uses poor style, or (3) good. There are different opinions as to what constitutes good style for a variable name. For this program, check for good style using these rules:
Only use letters and digits.
Use a lowercase letter for the first character.
You dont need to check for an uppercase letter for the first letter in the second word, third word, etc.
Sample session:
This program checks the properness of a proposed Java variable name.
Enter a variable name (q to quit): streetAddress2
Good!
Enter a variable name (q to quit): street address2
Illegal.
Enter a variable name (q to quit): StreetAddress2
Legal, but uses poor style.
Enter a variable name (q to quit): 2ndStreetAddress
Illegal.
Enter a variable name (q to quit): street$address$2
Legal, but uses poor style.
Enter a variable name (q to quit): q]
now, I don't know why, but the solution to this is eluding me to a point of insanity!
This is what I have, but it doesn't work!
Code:
/****************************************************
* NameChecker.java
*
*
* Name Checker Project, checking for legality
*****************************************************/
import java.util.Scanner;
public class NameChecker
{
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
String userInput;
char inputExtract;
char loopExtract;
boolean firstLetter = true;
boolean style = true;
int i;
System.out.print("Enter a variable name (q to quit): ");
userInput = stdIn.nextLine();
inputExtract = userInput.charAt(0);
if (!(Character.isLetter(inputExtract)))
{
firstLetter = false;
}
for (i = 1; 1 < userInput.length() && firstLetter; i++)
{
loopExtract = userInput.charAt(i);
if (!(Character.isLetterOrDigit(loopExtract) || loopExtract == '$' || loopExtract == '_'))
{
style = false;
}
}
if (firstLetter && style)
{
System.out.println("Good!");
}
else if (firstLetter && !(style))
{
System.out.println("Legal, but uses poor style.");
}
else
{
System.out.println("Illegal.");
}
}
} // end class