/** * ********************************************************** * * @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); }
/** * ************************************************************ * * @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; }