Hey guys, I have one stupid problem with the return value of one function... this is my code:

private boolean check(String mail, int N){
                               // mail = The mail
                               // N = The sum of the characters before the @ and including it him
		if(mail.substring(N) == "hotmail.com" || mail.substring(N) == "live.com" ||
				mail.substring(N) == "msn.com" || mail.substring(N) == "yahoo.com" ||
				mail.substring(N) == "gmail.com"){
			return true;
		} else {
			return false;
		}
	}

...and if the mail is daniweb@hotmail.com then mail.substring(N) will be hotmail.com but the return value will be false.

Where is my mistake?

Thanks.

Recommended Answers

All 3 Replies

The == operator does not compare the characters of the string. It checks to see if they are referring to the same object. Use the mail.substring(N).equals("hotmail.com") method to compare the characters (or equalsIgnoreCase() I think).

The problem is solved.

Thanks nmaillet. ;)

ps

if (some boolean expression) {
   return true;
} else {
   return false;
}

is just the long way to say

return  (some boolean expression);
Be a part of the DaniWeb community

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