Java String Split safeSplitParameters(String parameters)

Here you can find the source of safeSplitParameters(String parameters)

Description

safe Split Parameters

License

Open Source License

Declaration

public static ArrayList<String> safeSplitParameters(String parameters) 

Method Source Code

//package com.java2s;
/**/*from   w ww.j  av  a2 s. c om*/
 * LearnPAd - Verification Component
 * 
 *  Copyright (C) 2015 Unicam
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Affero General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Affero General Public License for more details.
 *
 *  You should have received a copy of the GNU Affero General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *   
 * @author Damiano Falcioni - Unicam <damiano.falcioni@gmail.com>
 */

import java.util.ArrayList;

public class Main {
    public static ArrayList<String> safeSplitParameters(String parameters) {
        if (parameters == null || parameters.isEmpty())
            return new ArrayList<String>();

        ArrayList<String> ret = new ArrayList<String>();

        int index = 0;
        do {
            int nextIndex = parameters.indexOf("&", index);
            if (nextIndex == -1)
                nextIndex = parameters.length();

            do {
                if (!parameters.substring(nextIndex).startsWith("&amp;"))
                    break;
                nextIndex = parameters.indexOf("&", nextIndex + 1);
                if (nextIndex == -1)
                    nextIndex = parameters.length();
            } while (true);

            ret.add(parameters.substring(index, nextIndex));

            index = nextIndex + 1;
        } while (index < parameters.length());

        return ret;
        //return parameters.split("\\&");
    }
}

Related

  1. getInputs(String str)
  2. getParameters(String[] split)
  3. getUsedInputs(String expression)
  4. recursiveSplit(String str, String splitor)
  5. split(byte[] bytes, byte[] p)
  6. split(byte[] data)
  7. split(byte[] input)
  8. split(byte[] input)