code: public static String reverseTokens(@Nullable String str, @Nonnull String delimiter) {
          if (str == null) {
              return null;
          }
          Preconditions2.checkNotNull(delimiter, "given delimiter can not be null");
  
          StringTokenizer st = new StringTokenizer(str, delimiter);
          List<String> tokens = new ArrayList<>();
  
          while (st.hasMoreTokens()) {
              tokens.add(st.nextToken());
          }
          Collections.reverse(tokens);
  
          return join(tokens, delimiter);
      }
docs: <p> Reverse tokens of given tokenized {@code str}.</p>
  <p>Sample: "server1.ecommerce.mycompany.com" returns {@code "com.mycompany.ecommerce.server1"}.</p>
  
  @param str
  @param delimiter
  @return reversed string or {@code null} if given string is {@code null}