Я не мог придумать, как сформулировать вопрос, но у меня есть довольно простая программа, которая попросит пользователя ввести элемент из периодической таблицы, а затем выведет символ, группу и атомную массу этого элемента.,В настоящее время он будет принимать только ввод имени элемента, и я пытаюсь сделать так, чтобы он также принимал ввод символа, но я не знаю, как это сделать.Например, в данный момент, если пользователь вводит «Железо», программа будет выводить корректно, но если они вводят «Fe», это не будет работать.Я хочу, чтобы ввод "Fe" также работал.Я очень новичок в Java, поэтому я хотел бы получить простое объяснение того, как и почему.
import java.util.Scanner;
public class PeriodicTable {
public enum Element {
Hydrogen("H", "Nonmetal", "1.008"),
Helium("He", "Noble Gas", "4.003"),
Lithium("Li", "Alkali Metal", "6.941"),
Beryllium("Be", "Alkaline Earth", "9.012"),
Boron("B", "Semimetal", "10.811"),
Carbon("C", "Nonmetal", "12.011"),
//The rest of the periodic table is here, I just removed it for the sake of this post.
private String symbol;
private String group;
private String weight;
private Element(String symbol, String group, String weight) {
this.symbol = symbol;
this.group = group;
this.weight = weight;
}
}
static Element cName = null;
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Enter the name of an element in the periodic table. ");
do {
String input = reader.nextLine();
try {
cName = Element.valueOf(input.trim().substring(0, 1).toUpperCase() + input.trim().substring(1).toLowerCase());
} catch(IllegalArgumentException e) {
System.out.println("That name is not valid. Please try again. ");
continue;
}
System.out.println("Element: " + cName + " (" + cName.symbol + ")" + "\nGroup: " + cName.group + "\nAtomic Mass: " + cName.weight);
reader.close();
break;
} while (true);
}
}