Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- import java.util.Stack;
- public class Main {
- public static void main(String[] args) {
- CalculatorFunction function = new CalculatorFunction();
- Stack<Integer> numbers = new Stack<>();
- Scanner scanner = new Scanner(System.in);
- String[] input = {"\n"};
- while (!input[0].equals("quit")){
- input = scanner.nextLine().split(" ");
- switch (input[0]){
- case "push":
- try {
- if(input.length > 2){
- System.out.println(input.length);
- System.out.println("Too much arguments passed");
- break;
- }
- int n = Integer.parseInt(input[1]);
- numbers.push(n);
- System.out.println("OK");
- }catch (NumberFormatException ex){
- System.out.println("Enter valid number");
- }
- break;
- case "pop":
- if(input.length >= 2){
- System.out.println("Too much arguments passed");
- }
- else if(numbers.isEmpty()){
- System.out.println("Stack is empty");
- }
- numbers.pop();
- System.out.println("OK");
- break;
- case "peek":
- if(input.length >= 2){
- System.out.println("Too much arguments passed");
- }
- else if(numbers.isEmpty()){
- System.out.println("Stack is empty");
- }
- System.out.println(numbers.peek());
- break;
- case "add":
- if(input.length > 1){
- System.out.println("Too much arguments passed");
- }
- else if(numbers.size() >= 2) {
- numbers.add(function.operation(numbers.lastElement(), numbers.get(numbers.size() - 2), "+"));
- System.out.println("OK");
- }
- else{
- System.out.println("Not enough numbers in stack");
- }
- break;
- case "sub":
- if(input.length > 1){
- System.out.println("Too much arguments passed");
- }
- else if(numbers.size() >= 2) {
- numbers.add(function.operation(numbers.get(numbers.size() - 2), numbers.lastElement(), "-"));
- System.out.println("OK");
- }
- else{
- System.out.println("Not enough numbers in stack");
- }
- break;
- case "multiply":
- if(input.length > 1){
- System.out.println("Too much arguments passed");
- }
- else if(numbers.size() >= 2) {
- numbers.add(function.operation(numbers.lastElement(), numbers.get(numbers.size() - 2), "*"));
- System.out.println("OK");
- }
- else{
- System.out.println("Not enough numbers in stack");
- }
- break;
- case "divide":
- if(input.length > 1){
- System.out.println("Too much arguments passed");
- }
- else if(numbers.size() >= 2) {
- numbers.add(function.operation(numbers.lastElement(), numbers.get(numbers.size() - 2), "/"));
- System.out.println("OK");
- }
- else{
- System.out.println("Not enough numbers in stack");
- }
- break;
- case "if-else":
- if(numbers.size() >= 3) {
- if(numbers.lastElement() != 0){
- numbers.get(numbers.size() - 1);
- System.out.println("OK");
- }
- else if(numbers.get(numbers.size() - 2) != 0){
- numbers.get(numbers.size() - 2);
- System.out.println("OK");
- }
- else {
- numbers.get(numbers.size() - 3);
- System.out.println("OK");
- }
- }
- else{
- System.out.println("Not enough numbers in stack");
- }
- break;
- case "print":
- if(input.length > 1){
- System.out.println("Too much arguments passed");
- }
- for (int i = numbers.size() ; i > 0; i--){
- if(i > 1){
- System.out.print(numbers.get(i - 1) + ",");
- }
- else{
- System.out.println(numbers.get(0));
- }
- }
- break;
- case "revert":
- if(input.length > 1){
- System.out.println("Too much arguments passed");
- }
- for(int i = 0; i <= numbers.size(); i++){
- numbers.insertElementAt(numbers.get(numbers.size() - 1),i);
- numbers.pop();
- }
- System.out.println("OK");
- break;
- case "reset":
- if(input.length > 1){
- System.out.println("Too much arguments passed");
- }
- numbers.clear();
- System.out.println("OK");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement