Я не думаю, что вы можете сделать это с помощью встроенного метода split
. Таким образом, у вас есть два варианта:
1) Сделайте свой собственный split
2) Итерации через массив после вызова split и удаления пустых элементов
Если вы сделаете свой вы можете просто объединить эти два параметра
public List<String> split(String inString)
{
List<String> outList = new ArrayList<>();
String[] test = inString.split("/");
for(String s : test)
{
if(s != null && s.length() > 0)
outList.add(s);
}
return outList;
}
, или вы можете просто проверить, находится ли разделитель в первой позиции, прежде чем вы вызовете split и проигнорируете первый символ, если это произойдет:
String delimiter = "/";
String delimitedString = "/Test/Stuff";
String[] test;
if(delimitedString.startsWith(delimiter)){
//start at the 1st character not the 0th
test = delimitedString.substring(1).split(delimiter);
}
else
test = delimitedString.split(delimiter);
Вы должны просто использовать percentile_cont()
или percentile_disc()
оконные функции:
select percentile_cont(0.5) within group (order by n) over (),
percentile_disc(0.5) within group (order by n) over ()
from t;
Нет необходимости заново изобретать колесо. [ 116]