Q:

.split() не делит строку

есть строка cbr-coa-dic:Osv_Dt_A_10501$dim-int:Nacz_Inostr_Valyuta_Axis/mem-int:Nacz_Valyuta_Rf_Member
ее необходимо раздеить по символу $ 
пробовал делить String[] soch =  f.split( "$");
но деления не происходит, при том , что заменив на другой символ(допустим d) строка делится нормально. 
в чем может быть проблема и как ее можно решить? 

A:

String[] soch = f.split("\\$");

Согласно документации, первый аргумент метода split — это строка, содержащая регулярное выражение, которое ищет куски, по которым будет делиться строка.  У регулярных выражений есть свой синтаксис, и знак доллара является частью этого синтаксиса (а также точка, вопросительный знак, скобки и другие символы). 
Чтобы доллар воспринимался как просто доллар, а не как часть синтаксиса регулярки, нужно его экранировать, поставив перед ним слэш.  Но если просто написать "\$", то это ничего не даст, так как это экранирование на уровне синтаксиса строки Java, а нам надо запихнуть слэш в саму строку, поэтому записываем слэш в экранированном виде: "\\$" даст нам строку из двух символов \$, которая является регулярным выражением, которое будет искать просто знаки доллара.