Esempio n. 1
0
  /**
   * **********************************************************
   *
   * @param args
   *     <p>Main method used for generic testing
   *     *********************************************************
   */
  public static void main(String[] args) {
    MyLinkedList<Character> list = new MyLinkedList<Character>();

    list.addFirst(' ');
    list.addFirst('O');
    list.addFirst('L');
    list.addFirst('L');
    list.addFirst('E');
    list.addFirst('H');
    list.addAtEnd('W');
    list.addAtEnd('O');
    list.addAtEnd('R');
    list.addAtEnd('L');
    list.addAtEnd('D');
    list.addAtEnd('!');

    System.out.println(list);

    list.addAtLocation('d', 9);
    // myInter.processCommand("b Q 9");

    System.out.println(list);

    list.deleteAtLocation(5);

    System.out.println(list);

    list.swap(1, 5);

    System.out.println(list);

    list.deleteGroup(1, 3);

    System.out.println(list);
  }
Esempio n. 2
0
  /**
   * ************************************************************
   *
   * @param command user specified mixing command
   *     <p>Takes user defined string and mixes linked list accordingly.
   *     ***********************************************************
   */
  public String processCommand(String command) {

    // splits command by spaces
    String[] split = command.split("\\s+");

    char returnMe = 'N';

    if (split[0].length() == 1) {
      // switches function based on initial letter command
      switch ((char) split[0].charAt(0)) {

          // insert character at location
        case 'b':
          try {
            Integer.parseInt(split[2]);
          } catch (NumberFormatException e) {
            System.out.println("\n\tERROR: NON_NUMBER LOCATION!\n");
            break;
          }
          message.addAtLocation((char) split[1].charAt(0), Integer.parseInt(split[2]));
          break;

          // removes character at position
        case 'r':
          try {
            // check for "top" node change
            if (Integer.parseInt(split[1]) == 1) message.setTop(message.getTop().getNext());
            else {
              returnMe = message.deleteAtLocation(Integer.parseInt(split[1])).getData();
              if (returnMe == ' ') returnMe = '_';
            }
          } catch (NumberFormatException e) {
            System.out.println("\n\tERROR: NON_NUMBER LOCATION!\n");
          }
          break;

          // switch characters at positions
        case 'w':
          try {
            message.swap(Integer.parseInt(split[1]) - 1, Integer.parseInt(split[2]) - 1);
          } catch (NumberFormatException e) {
            System.out.println("\n\tERROR: NON_NUMBER LOCATION!\n");
          }
          break;

          // cut to clip board
        case 'x':
          try {
            message.copyToClipBoard(
                (Integer.parseInt(split[1]) - 1), (Integer.parseInt(split[2])) - 1);
            message.deleteGroup((Integer.parseInt(split[1]) - 1), (Integer.parseInt(split[2])) - 1);
            message.setCurrentClip(message.getCurrentClip().replace(' ', '_'));
          } catch (NumberFormatException e) {
            System.out.println("\n\tERROR: NON_NUMBER LOCATION!\n");
          }
          break;

          // paste from clip board
        case 'p':
          try {
            message.pasteFromClipboard(Integer.parseInt(split[1]) - 1);
          } catch (NumberFormatException e) {
            System.out.println("\n\tERROR: NON_NUMBER LOCATION!\n");
          }
          break;

          // copy from clip board
        case 'c':
          try {
            message.copyToClipBoard(
                (Integer.parseInt(split[1]) - 1), (Integer.parseInt(split[2])) - 1);
          } catch (NumberFormatException e) {
            System.out.println("\n\tERROR: NON_NUMBER LOCATION!\n");
          }
          break;

          // prints current clip board
        case 'v':
          if (message.getCurrentClip() != null)
            System.out.println(
                "Current Clip Board: "
                    + (message.getCurrentClip().replace('_', ' '))
                    + " < "
                    + message.getCurrentClip().length()
                    + " char long >");
          else System.out.println("CLIP BOARD IS EMPTY");
          break;

          // clears clip board
        case 'e':
          message.setCurrentClip(null);
          System.out.println("CLIP BOARD CLEARED");
          break;

          // adds node at end
        case 'a':
          message.addAtEnd((char) split[1].charAt(0));
          break;

          // saves commands
        case 's':
          save(split[1]);
          System.out.println("Saved Message:" + message.ToStringNoSpaces());
          break;

        default:
          System.out.println("\n\tERROR: UNKNOWN COMMAND!\n");
      }

      // save command, and clip board if applicable, for saving to file
      if (message.getCurrentClip() != null) {
        if ((char) split[0].charAt(0) == 'r') {
          commands.add(command + " " + returnMe + message.getCurrentClip() + "\n");
        } else commands.add(command + " " + message.getCurrentClip() + "\n");
      } else {
        if ((char) split[0].charAt(0) == 'r') {
          commands.add(command + " " + returnMe + "\n");
        } else commands.add(command + "\n");
      }
    } else
      // if command is not known
      System.out.println("\n\tERROR: UNKNOWN COMMAND!\n");

    return command;
  }