Hey there, this is my first post here and I'm in the need of some real help.


I've written a basic password verifier, which checks to see if what you type in is the same as the default stored password, but i continually get a compile error.

import java.util.Scanner;

public class PasswordVerifier
{
	public static boolean isValid(String userPass)
		{
			/**
			 * This is the default stored password
			 */
			
			// Password stored by default is "cool"
			
			boolean goodSoFar = true; // Flag
			int index = 0;				  // Loop control variable
			
			// Is the string the correct length?
			if (userPass.length() != 4)
				goodSoFar = false;
				
				
			// Test to see if the characters match the password
			while (goodSoFar && index < 4)
			{
				if (!Character(userPass.charAt(index == 'c')))
					goodSoFar = false;
				index++;
				if (!Character(userPass.charAt(index == 'o')))
					goodSoFar = false;
				index++;
				if (!Character(userPass.charAt(index == 'o')))
					goodSoFar = false;
				index++;
				if (!Character(userPass.charAt(index == 'l')))
					goodSoFar = false;there 
				index++;
			
			//results are returned
			return goodSoFar;
		}
}
}

And then here is my driver class

import java.util.Scanner;
 
public class PasswordDriver
{

public static void main(String[] args)
{
	PasswordVerifier PW = new PasswordVerifier();
	String user; // To hold a user pass
	
	
	while(user != "")
		{
			System.out.println("Please enter a password containing letters and lowercase only, or nothing to end");
			//create a scanner object
			Scanner keyboard = new Scanner(System.in);
			
			//get user pass
			user = keyboard.nextLine();
			
			//Determine if the password is valid.
			if (PW(user))
				{
					System.out.println("That is a valid password");
				}
			else
				{
					System.out.println("That is not the proper password or format");
					System.out.println("Here is an example: cool");
				}
		}
}
}

The error i get when I'm compiling is

PasswordVerifier.java:30: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'c')))
^
PasswordVerifier.java:33: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'o')))
^
PasswordVerifier.java:36: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'o')))
^
PasswordVerifier.java:39: charAt(int) in java.lang.String cannot be applied to (boolean)
if (!Character(userPass.charAt(index == 'l')))

could someone please help me out, i've tried multiple variances and fixes, but alas... none work for me. Thanks everyone!

Recommended Answers

it needs to be changed to this format

if (userPass.charAt(index) == 'c')

but you are making it hard, you can do this

if(userPass.startsWith("cool")){
return false;
}
Jump to Post

startsWith? so "coolblahblahblah" will be true too? not sure that sounds totally secure, but yeah, the compiler error is as stated above.

Jump to Post

All 7 Replies

it needs to be changed to this format

if (userPass.charAt(index) == 'c')

but you are making it hard, you can do this

if(userPass.startsWith("cool")){
return false;
}

startsWith? so "coolblahblahblah" will be true too? not sure that sounds totally secure, but yeah, the compiler error is as stated above.

I think you have misplaced the parenthesis:

This:
if (!Character(userPass.charAt(index == 'c')))

Should be:
if (!Character(userPass.charAt(index) == 'c'))

You could also try:

goodSoFar = userPass.equals("cool");
return goodSoFar;

lol i don't think checking if the password contains c o o l, was too secure, thats why i made the post

thanks dickersonka... that fixed the compile issue for the constructor, but in the drive i'm now getting the following error, yet i see nothing wrong =\


symbol : method PW(java.lang.String)
location: class PasswordDriver
if (PW(user))

You already have the "PasswordVerifier" so you now want to use the methods within it.

PW.isValid(user)

wow ... and to think I thought the .equals(..) method worked great :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.