Here you can find the source of splitStringWithBracesOnSeparator(String string, char separator)
Parameter | Description |
---|---|
string | a parameter |
separator | a parameter |
public static List<String> splitStringWithBracesOnSeparator(String string, char separator)
//package com.java2s; /*/*www . j a v a 2 s . c o m*/ This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV 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 or write to the Free Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ import java.util.ArrayList; import java.util.List; public class Main { /** * Split string no separator char, taking into account braces. * @param string * @param separator * @return */ public static List<String> splitStringWithBracesOnSeparator(String string, char separator) { List<String> tokens = new ArrayList<String>(); if (string != null && string.length() > 0) { int depth = 0; StringBuilder current = new StringBuilder(); for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); if (depth <= 0 && c == separator) { tokens.add(current.toString()); current = new StringBuilder(); } else { if (c == '(') { depth++; } else if (c == ')') { depth--; } current.append(c); } } // add last one tokens.add(current.toString()); } return tokens; } }