Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. package com.studia;
  2.  
  3.  
  4. import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
  5.  
  6. public class Main {
  7. public static String wyr = "5*(3-2)^2/3=";
  8. public String wyr2 = "22.5+4-8=";
  9. public String wyr3 = "12*3^2=";
  10. public String wyr4 = "(2*(3-8))+4=";
  11. public static void main(String[] args)
  12. {
  13. String[] onp = new String[5];
  14. String onp1 = ONP(wyr);
  15.  
  16. }
  17. public static boolean isGoodString(String str)
  18. {
  19. if(str.endsWith("="))
  20. return true;
  21. else
  22. return false;
  23. }
  24. public static String ONP(String str)
  25. {
  26. String ONP = "";
  27. String[] stack = new String[15];
  28. int top = -1;
  29.  
  30. for(int i = 0; i<str.length();i++)
  31. {
  32. if((str.charAt(i) >= '0' && str.charAt(i)<='9')||str.charAt(i) == '.')
  33. {
  34. ONP += str.charAt(i);
  35. if(!(str.charAt(i+1) >= '0' && str.charAt(i+1)<='9') && str.charAt(i+1) != '.')
  36. {
  37. ONP += " ";
  38. }
  39. }
  40. else
  41. {
  42. switch (str.charAt(i))
  43. {
  44. case '-':
  45. case '+':
  46. {`
  47. while(top >= 0 && !stack[top].equals("("))
  48. ONP += stack[top--] + " ";
  49. stack[++top] = str.charAt(i) + "";
  50. break;
  51. }
  52. case '*':
  53. case '/':
  54. {
  55. while(top >= 0 && !stack[top].equals("(") && (!stack[top].equals("+") || !stack[top].equals('-'))) {
  56. ONP += stack[top--] + " ";
  57. }
  58. top++;
  59. stack[top] = str.charAt(i) + "";
  60. break;
  61. }
  62. case 'v':
  63. case '^':
  64. {
  65. while(top >= 0 && !stack[top].equals("(") && (stack[top].equals("v") || stack[top].equals('^')))
  66. ONP += stack[top--] + " ";
  67. top++;
  68. stack[top] = str.charAt(i) + "";
  69. break;
  70. }
  71. case '(':
  72. {
  73. stack[++top] = str.charAt(i) + "";
  74. break;
  75. }
  76. case ')':
  77. {
  78. while(top >= 0 &&!stack[top].equals("("))
  79. {
  80. ONP += stack[top--] + " ";
  81. }
  82. top--;
  83. break;
  84. }
  85. case '=':
  86. {
  87. while(top >= 0)
  88. ONP += stack[top--] + " ";
  89. ONP += "=";
  90. }
  91. }
  92. }
  93. }
  94. System.out.println(ONP);
  95. return ONP;
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement