Advertisement
Guest User

Untitled

a guest
May 25th, 2015
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1.  
  2. import java.util.List;
  3.  
  4. public class KonecnyAutomat {
  5.  
  6. private List<Token> seznam;
  7.  
  8. private enum vycetTokenu {
  9.  
  10. OPERAND, OPERATOR, ZAVORKY
  11. }
  12.  
  13. private enum vycetStavu {
  14.  
  15. START, OPERAND, OPERATOR, ZAVORKY, TECKA
  16. }
  17.  
  18. private class Token {
  19.  
  20. vycetTokenu druh;
  21. String data;
  22.  
  23. public Token(vycetTokenu druh, String data) {
  24. this.druh = druh;
  25. this.data = data;
  26. }
  27. }
  28.  
  29. private Token vratToken(vycetTokenu druh, String data) {
  30. return new Token(druh, data);
  31. }
  32.  
  33. private boolean jeCislo(String str) {
  34. return str == "0" || str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7" || str == "8" || str == "9";
  35. }
  36.  
  37. private boolean jeOperator(String str) {
  38. return str == "+" || str == "-" || str == "*" || str == "/";
  39. }
  40.  
  41. private boolean jeZavorka(String str) {
  42. return str == "(" || str == ")";
  43. }
  44.  
  45. private boolean jeTecka(String str){
  46. return str == ".";
  47. }
  48.  
  49. private void rozsekej(String name) {
  50. String[] strArray = new String[]{name};
  51. String tmp = "";
  52. vycetStavu stav = vycetStavu.START;
  53. for (String znak : strArray) {
  54. switch (stav) {
  55. case START:
  56. if (jeCislo(znak)) {
  57. stav = vycetStavu.OPERATOR;
  58.  
  59. } else if(jeZavorka(znak)) {
  60. stav = vycetStavu.ZAVORKY;
  61.  
  62. }else{
  63. throw new NullPointerException("Spatny stav.");
  64. }
  65. break;
  66. case OPERAND:
  67. if (jeCislo(znak)) {
  68. stav = vycetStavu.OPERAND;
  69.  
  70. } else if (jeZavorka(znak)) {
  71. stav = vycetStavu.ZAVORKY;
  72.  
  73. } else if (jeOperator(znak)) {
  74. stav = vycetStavu.OPERATOR;
  75.  
  76. }else if(jeTecka(znak)){
  77. stav = vycetStavu.TECKA;
  78.  
  79. }else{
  80. throw new NullPointerException("Spatny stav.");
  81. }
  82. break;
  83. case OPERATOR:
  84. if (jeCislo(znak)) {
  85. stav = vycetStavu.OPERAND;
  86.  
  87. } else if (jeZavorka(znak)) {
  88. stav = vycetStavu.ZAVORKY;
  89.  
  90. }else{
  91. throw new NullPointerException("Spatny stav.");
  92. }
  93. break;
  94. case ZAVORKY:
  95. if(jeCislo(znak)){
  96. stav = vycetStavu.OPERAND;
  97.  
  98. }else if(jeOperator(znak)){
  99. stav = vycetStavu.OPERATOR;
  100.  
  101. }else{
  102. throw new NullPointerException("Spatny stav.");
  103. }
  104. break;
  105. case TECKA:
  106. if(jeCislo(znak)){
  107.  
  108. }else{
  109. throw new NullPointerException("Spatny stav.");
  110. }
  111. break;
  112. }
  113. }
  114. }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement