Network Java Tutorial

// 
// Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at 
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// 
/**
 * URI Holder. This class assists with the decoding and encoding or HTTP URI's.
 * It differs from the java.net.URL class as it does not provide communications
 * ability, but it does assist with query string formatting.
 * 


 * UTF-8 encoding is used by default for % encoded characters. This may be
 * overridden with the org.mortbay.util.URI.charset system property.
 * 
 * @see UrlEncoded
 * @author Greg Wilkins (gregw)
 */
public class Utils {
  /** 
   * @param uri URI
   * @return True if the uri has a scheme
   */
  public static boolean hasScheme(String uri)
  {
      for (int i=0;i      {
          char c=uri.charAt(i);
          if (c==':')
              return true;
          if (!(c>='a'&&c<='z' ||
                c>='A'&&c<='Z' ||
                (i>0 &&(c>='0'&&c<='9' ||
                        c=='.' ||
                        c=='+' ||
                        c=='-'))
                ))
              break;
      }
      return false;
  }
}