code: static List<String> split(String input)
      {
          if (input.isEmpty())
              return Collections.<String>emptyList();
  
          List<String> res = new ArrayList<String>();
          int prev = 0;
          for (int i = 0; i < input.length(); i++)
          {
              if (input.charAt(i) != ':' || (i > 0 && input.charAt(i-1) == '\\'))
                  continue;
  
              res.add(input.substring(prev, i));
              prev = i + 1;
          }
          res.add(input.substring(prev, input.length()));
          return res;
      }
docs: /*
  Split the input on character ':', unless the previous character is '\'.