В одном классе, у меня есть метод:Я получаю <Identifier> ожидается ошибка
public void initalizeElements()
{
//does some stuff
}
Итак, в другом классе я стараюсь:
Molecules mol = new Molecules();
mol.initalizeElements();
и я получаю сообщение об ошибке во второй строке говоря «ожидаемый».
Я чувствую, что это действительно легко, и я просто смотрю на что-то простое, но я все еще не могу понять это. И прежде чем кто-то скажет это, я посмотрел на сотни других вопросов, которые имеют тот же вопрос, что и я. Но никто из них не помог мне.
Полный код:
package mymolecules;
public class Molecules
{
public String[] elements = new String[35];
private int lazyCounter = 0;
public void initalizeElements()
{
elements[lazyCounter] = "H";
lazyCounter += 1;
elements[lazyCounter] = "He";
lazyCounter += 1;
elements[lazyCounter] = "Li";
lazyCounter += 1;
elements[lazyCounter] = "Be";
lazyCounter += 1;
elements[lazyCounter] = "B";
lazyCounter += 1;
elements[lazyCounter] = "C";
lazyCounter += 1;
elements[lazyCounter] = "N";
lazyCounter += 1;
elements[lazyCounter] = "O";
lazyCounter += 1;
elements[lazyCounter] = "F";
lazyCounter += 1;
elements[lazyCounter] = "Ne";
lazyCounter += 1;
elements[lazyCounter] = "Na";
lazyCounter += 1;
elements[lazyCounter] = "Mg";
lazyCounter += 1;
elements[lazyCounter] = "Al";
lazyCounter += 1;
elements[lazyCounter] = "Si";
lazyCounter += 1;
elements[lazyCounter] = "P";
....
....
//on so on for the hole periodic table
}
}
и
package mymolecules;
public class Parser
{
private String conString = "";
private int conInt = 0;
private int indexer = 0;
private int lazyCounter = 0;
private String sortList = "";
private int sortCount = 0;
Molecules mol = new Molecules();
mol.initalizeElements();
private String formula;
public Parser(String Formula)
{
this.formula = Formula;
}
public void Sort()
{
while (lazyCounter > 34)
{
try {
if (formula.contains(mol.elements[lazyCounter])) //Does the String contain the letter "H"
{
indexer = formula.indexOf(mol.elements[lazyCounter]); //indexer = where in the String "H" is located.
if (formula.substring(indexer+1,indexer+2).matches("e")) //if "e" is located right after "H"
{
//System.out.println("Skip"); //Skipping because we'll deal with it later
}
else
{
if (formula.substring(indexer+1,indexer+2).matches("[1-999].*")) // if any number is located after H
{
conString = formula.substring(indexer+1,indexer+2); //Take the number after "H" and put it in conString
conInt = Integer.parseInt(conString); //conInt = ConString as an Integer
System.out.println("H"+conInt); //Print out "H" and the number
}
else
{
System.out.println(mol.elements[lazyCounter]);
}
}
}
}
catch (java.lang.StringIndexOutOfBoundsException e) //Catches the error from earlier
{
System.out.println("Whew caught an error!"); //rest of this is self explanitory.
System.out.println(mol.elements[lazyCounter]);
}
lazyCounter += 1;
}
}
}
Этот снипп хорошо выглядит. Можете ли вы рассказать о другом контексте? – Mureinik
является 'mol.initalizeElements();' в методе? – Reimeus
@Mureinik sure 1 sec – KiwiNinja