Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.List;
- public class KonecnyAutomat {
- private List<Token> seznam;
- private enum vycetTokenu {
- OPERAND, OPERATOR, ZAVORKY
- }
- private enum vycetStavu {
- START, OPERAND, OPERATOR, ZAVORKY, TECKA
- }
- private class Token {
- vycetTokenu druh;
- String data;
- public Token(vycetTokenu druh, String data) {
- this.druh = druh;
- this.data = data;
- }
- }
- private Token vratToken(vycetTokenu druh, String data) {
- return new Token(druh, data);
- }
- private boolean jeCislo(String str) {
- return str == "0" || str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7" || str == "8" || str == "9";
- }
- private boolean jeOperator(String str) {
- return str == "+" || str == "-" || str == "*" || str == "/";
- }
- private boolean jeZavorka(String str) {
- return str == "(" || str == ")";
- }
- private boolean jeTecka(String str){
- return str == ".";
- }
- private void rozsekej(String name) {
- String[] strArray = new String[]{name};
- String tmp = "";
- vycetStavu stav = vycetStavu.START;
- for (String znak : strArray) {
- switch (stav) {
- case START:
- if (jeCislo(znak)) {
- stav = vycetStavu.OPERATOR;
- } else if(jeZavorka(znak)) {
- stav = vycetStavu.ZAVORKY;
- }else{
- throw new NullPointerException("Spatny stav.");
- }
- break;
- case OPERAND:
- if (jeCislo(znak)) {
- stav = vycetStavu.OPERAND;
- } else if (jeZavorka(znak)) {
- stav = vycetStavu.ZAVORKY;
- } else if (jeOperator(znak)) {
- stav = vycetStavu.OPERATOR;
- }else if(jeTecka(znak)){
- stav = vycetStavu.TECKA;
- }else{
- throw new NullPointerException("Spatny stav.");
- }
- break;
- case OPERATOR:
- if (jeCislo(znak)) {
- stav = vycetStavu.OPERAND;
- } else if (jeZavorka(znak)) {
- stav = vycetStavu.ZAVORKY;
- }else{
- throw new NullPointerException("Spatny stav.");
- }
- break;
- case ZAVORKY:
- if(jeCislo(znak)){
- stav = vycetStavu.OPERAND;
- }else if(jeOperator(znak)){
- stav = vycetStavu.OPERATOR;
- }else{
- throw new NullPointerException("Spatny stav.");
- }
- break;
- case TECKA:
- if(jeCislo(znak)){
- }else{
- throw new NullPointerException("Spatny stav.");
- }
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement