Advertisement
EmoRz

SimpleTextEditor - Reafctoring

Sep 20th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.72 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace SimpleTextEditor
  5. {
  6.     class TextEditor
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var n = int.Parse(Console.ReadLine());
  11.             var text = "";
  12.             var stack = new Stack<string>();
  13.  
  14.             for (int i = 0; i < n; i++)
  15.             {
  16.                 var parts = Console.ReadLine().Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
  17.                 var command = int.Parse(parts[0]);
  18.  
  19.                 switch (command)
  20.                 {
  21.                     case 1:
  22.                         text +=(parts[1]);
  23.                         stack.Push(text.ToString());
  24.                         break;
  25.                     case 2:
  26.                         var index = int.Parse(parts[1]);
  27.                         text = text.Remove(text.Length - index, index);
  28.                         stack.Push(text.ToString());
  29.                         break;
  30.                     case 3:
  31.                         var charIndex = int.Parse(parts[1]) - 1;
  32.                         Console.WriteLine(text[charIndex]);                        
  33.                         break;
  34.                     case 4:
  35.                         if (stack.Count>1)
  36.                         {
  37.                             stack.Pop();
  38.                             text = "";
  39.                             text = (stack.Peek());
  40.                         }
  41.                         else if (stack.Count==1)
  42.                         {
  43.                             stack.Pop();
  44.                             text = "";
  45.                         }                        
  46.                         break;
  47.                
  48.                 }
  49.             }
  50.         }
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement