Java String Extract extractParameters(String uri)

Here you can find the source of extractParameters(String uri)

Description

extract Parameters

License

Open Source License

Declaration

public static String[] extractParameters(String uri) 

Method Source Code

//package com.java2s;
/***//from ww  w .  j  a  v  a2 s.  c o m
 * Copyright (c) 2009 Caelum - www.caelum.com.br/opensource
 * All rights reserved.
 *
 * 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.
 */

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static String[] extractParameters(String uri) {
        //yeah, regexes are the root of all evil... so falling back to bracket matching!!! =)
        List<String> params = new ArrayList<String>();
        StringBuilder param = new StringBuilder();
        int brackets = 0;
        for (int i = 0; i < uri.length(); i++) {
            char character = uri.charAt(i);
            if (character == '{') {
                brackets++;
                if (brackets == 1) {
                    continue;
                }
            } else if (character == '}') {
                brackets--;
                if (brackets == 0) {
                    params.add(param.toString());
                    param = new StringBuilder();
                }
            }
            if (brackets > 0) {
                param.append(character);
            }
        }
        return params.toArray(new String[params.size()]);
    }
}

Related

  1. extractLines(String data, int tabWidth)
  2. extractNoPublicDomains(String domains)
  3. extractNumberFromInput(String command)
  4. extractNumbers(String text)
  5. extractPacket(String serverPacket)
  6. extractParamsFromUriTemplateFragment(String value)
  7. extractReferences(String value)
  8. extractStreetName(String address)
  9. extractStrings(String s)