Я должен сделать проект о периодической таблице элементов.Моя дилемма заключается в следующем.Пользователь отправляет вам молекулярное уравнение.Это может быть любой длины.В этом массиве есть заглавные буквы, строчные буквы и цифры.
У меня также есть массив объектов.Каждый объект представляет элемент в периодической таблице.Теперь мне нужно разбить эту строку, которую пользователь отправляет мне на более мелкие части - на части, которые распознаются массивом объектов.Я также должен умножить ответ либо на один, либо на число рядом с последней буквой элемента.
Я уже попробовал следующее.Сделайте строку массивом символов.Пробежаться по массиву задом наперед - проверить число (Character.isDigit(a[i]);
), проверить прописные и строчные буквы ... Я всегда сталкиваюсь с одной и той же проблемой.Я понятия не имею, как долго будет длиться строка.Допустим, я нахожу номер.Затем, если предыдущий символ представляет собой строчную букву, мне нужно сделать еще одну проверку в обратном направлении для заглавной буквы.Тогда, скажем, у меня есть молекулярное уравнение и сумма, на которую нужно умножить его - как я могу сообщить компьютеру, чтобы он начал смотреть с последней заглавной буквы.
Надеюсь, кто-то это понимает!
Действительно нуждается в некоторой помощи.
Еще один вопрос: почему этот код не работает:
String moleq = "HeKiLH2B6";
char[] a = moleq.toCharArray();
int g = moleq.length()-1;
int x = 1; //if not more than one of element - multiply getWeight by 1
int[][] indexofdigit = new int[moleq.length()][2];
int[] indexoflower = new int[moleq.length()];
for (int i = g; i <= 0; i--){
if (Character.isDigit(a[i])) {
String z = Character.toString(a[i]);
x = Integer.parseInt(z);
System.out.println("YES");
}
}
Этот код никогда не печатает мне Да?