In this way, you are returning some errors and it looks like you may experience conflicts in cases of 2-character operators.
Example: "++" being replaced by "# ++ #" while on the next call of replaceAll()
it will replace the operands from "# ++ #" to "## + ## + ##" ".
private String[] sliptBySpecialCharacteres(String lexeme) {
return lexeme.replaceAll("==", "#==#")
.replaceAll("&&", "#&&#")
.replaceAll("=", "#=#")
.replaceAll(">", "#>#")
.replaceAll("++", "#++#")
.replaceAll("<=", "#<=#")
.replaceAll("!", "#!#")
.replaceAll("-", "#-#")
.replaceAll("--", "#--#")
.replaceAll("+", "#+#")
.replaceAll("+=", "#+=#")
.replaceAll("*", "#*#")
.replaceAll(",", "#,#")
.replaceAll(".", "#.#")
.replaceAll("[", "#[#")
.replaceAll("{", "#{#")
.replaceAll("(", "#(#")
.replaceAll(")", "#)#")
.replaceAll("}", "#}#")
.replaceAll("]", "#]#")
.split("#");
}