I just started doing tests in order to prepare for a project I have in mind and I've already run into a problem. The basics of what I want to do is to run the program and have the user enter a name or a number that corresponds to a certain item (Each item has 1 name and 1 number. It is normal for the number to be written in multiple ways. ex: 1, 01, 001).

When the user enters a name or number, it will read a certain text file, use a regular expression to extract some data and display it. For example, the user types 001, or "bulbasaur", then the program will read the file that goes with bulbasaur, and print the data specified by the regular expression.

Which file is read is determined by user input, which leads me to believe that the file should be declared within an if statement. Example:

Code:
if( cleanName.equals("bulbasaur") || cleanName.equals("1")) {
fileName = "src\\\\bulbasaur.txt";
}
The code then goes on to read the specified file. However, as I discovered, if a variable is declared within an if statement (Or any type of statement using {}), then it cannot be read outside of that block. After doing some research, I discovered I could get around this by using the if else ternary operator.

So here is where my question finally comes in. There will be a total of 151 items (And thus 151 text files) that can possibly be read, depending on user input. So this is what I did to test reading between two text files:

Code:
filename = (cleanName.equals("bulbasaur") || cleanName.equals("1")
				|| cleanName.equals("01") || cleanName.equals("001")) 
				? "src\\\\bulbasaur.txt"  : (cleanName.equals("charmander") 
				|| cleanName.equals("2") || cleanName.equals("02") 
				|| cleanName.equals("002")) ? "src\\\\charmander.txt" 
				: "null";
I know it doesn't look really neat, but it does work the way I want it to. And it extracts the appropriate data from either text file. However, still doing research, I've seen many people saying this is 'abuse', and all in all this is not a good thing to do within my code.

So, understanding what it is I am trying to accomplish, I was wondering if anyone knew a more "best practices"/ "acceptable" method to doing what it is I hope to do? Any ideas would be greatly appreciated. I hope I provided enough information.