Advertisement
Guest User

Untitled

a guest
May 26th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Calculator2 {
  4. public static double[] operands;
  5. public static char[] signs;
  6.  
  7. public static boolean isMathSymbol (char symbol) { // Метод для проверки символа на принадлежность к математическим.
  8. boolean returner = false;
  9. if (symbol == '*' || symbol == '/' || symbol == '+' || symbol == '-') returner = true;
  10. return returner;
  11. }
  12.  
  13. public static void main(String[] args) {
  14. Scanner reader = new Scanner(System.in);
  15.  
  16. String input, result = "";
  17. int counter1, counter2, count = 0, countOfSigns = 0, sign = 0, registrator = 0;
  18. int[] fixator;
  19. char collector;
  20.  
  21. everything: while (true) {
  22. input = reader.nextLine();
  23.  
  24. for (counter1 = 0; counter1 < input.length(); counter1++) { // Создаем строку без пробелов.
  25. input = input.replaceAll(" ", "");
  26. }
  27.  
  28. for (counter1 = 0; counter1 < input.length(); counter1++) {
  29. collector = input.charAt(counter1); // Присваевание символом чекеру.
  30.  
  31. if (Character.isDigit(collector)|| isMathSymbol(collector) || collector == '.') {
  32. if (isMathSymbol(collector)) {
  33. countOfSigns++;
  34. signs = new char[countOfSigns];
  35. signs[countOfSigns-1] = collector;
  36. }
  37. } else {
  38. System.out.println("Ошибка! Вы ввели не число!");
  39. break everything;
  40. }
  41. }
  42.  
  43. for(counter1 = 0; counter1 < input.length(); counter1++) {
  44. int adder = -1;
  45. collector = input.charAt(counter1);
  46. count = counter1;
  47.  
  48. if (isMathSymbol(collector)) {
  49. fixator = new int[countOfSigns+1];
  50. fixator[0] = 0;
  51. fixator[registrator+1] = count;
  52. registrator++;
  53. for(counter2 = fixator[1+adder]; counter2 < count; counter2++) {
  54. result += input.charAt(counter2);
  55. }
  56. operands = new double[countOfSigns+1];
  57. operands[sign+1] = Double.parseDouble(result);
  58. for(counter1 = 0; counter1 < countOfSigns + 1; counter1++) System.out.println(operands[counter1]);
  59. }
  60. }
  61. System.out.println(operands[countOfSigns]);
  62. }
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement