Java Java Method for Checking Y or N: A Beginner's Guide

  • Thread starter Thread starter JaysFan31
  • Start date Start date
  • Tags Tags
    Method
Click For Summary
The discussion centers on creating a Java method that checks if a given string is either "Y" or "N" (case insensitive). The original code attempts to use a switch statement but encounters compilation errors due to incorrect variable usage. Suggestions include checking the string's length first to ensure it is exactly one character. If the length is valid, the character can be converted to uppercase and compared against 'N' and 'Y'. An alternative approach proposed is using the equals method to directly compare the string against "Y", "y", "N", and "n". Overall, the focus is on ensuring the method correctly identifies the specified characters while avoiding common pitfalls in Java syntax and logic.
JaysFan31
I'm very new to Java and I was looking for some help on this particular problem.

I need to create a method that takes a String as a parameter and returns "true" if the parameter is the letter Y or the letter N (in either upper or lower case), or false otherwise.

Most of the methods we've been working on are numbers (integers mostly) not strings, so this one confuses me quite a bit. How do you make the computer look for a certain character like y, Y, n, N. I don't want to declare them as variables, I just want Java to see them as letters.

I have:
public static boolean isYorN(String str)
{
boolean character;
switch (character)
{
case 'y':
character = true;
return true;
break;

case 'Y':
character = true;
return true;
break;

case 'n':
character = true;
return true;
break;

case 'N':
character = true;
return true;
break;

default:
character = false;
return false;

}
}
}

I think a switch case is the best method, but I'm missing something about naming because all my compiling errors are telling me that I have incompatible types (i.e. found: boolean, required: int).

Thank you in advance for any help.
 
Technology news on Phys.org
The switch would be the best method if you were looking at a single character.
I would try looping through an array testing each character.
 
Well, I would stay away from switch statements if possible.

I would first check if the String(bottom line it is sequence(array) of chars) is of length 1 if not return false.

if(str == null || str.length != 1){
return false;
}

now since the string is of length 1, let's get the char and see if it is N or Y.

char chr = Charachter.toUpperCase(str.getCharAt(0));

return char == 'N' || char == 'Y';
 
haki said:
char chr = Charachter.toUpperCase(str.getCharAt(0));

return char == 'N' || char == 'Y';

I'm sure you meant return chr == 'N' || chr == 'Y';

I think haki's way is the smartest here, but as the most basic you could also just do:

return str.equals("Y") || str.equals("y") || str.equals("N") || str.equals("n");
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 13 ·
Replies
13
Views
4K
  • · Replies 0 ·
Replies
0
Views
634
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 12 ·
Replies
12
Views
2K
Replies
2
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K