For insert and delete, is the easiest way to do it is StringBuilder?
--- Update ---
Here are my insert and delete methods. I commented the changes part out since that is how I was storing the new string in the stack, but it's wrong. So the deleting and inserting themselves should be correct since my string is string, the substring I'm inserting is sstring (which I hard code into the driver) and pos is the position in the string that the substring is inserted or deleted (which I also hard code when I list the sub strings)
public void insert(int pos, String sstring)
{
string.insert(pos, sstring);
//changes.push(string.toString());
}
public void delete(int pos, int count)
{
string.delete(pos, count);
//changes.push(string.toString());
}