Метод split принимает строку в качестве первого параметра, который затем интерпретируется как регулярное выражение.
Знак доллара - это специальный оператор в регулярных выражениях, поэтому вы должны избежать его таким образом, чтобы получить то, что вы хотите:
String data = ...
String[] parts = data.split("\\$");
Или, если разделитель может измениться, вы можете использовать более общие слова:
String data = ...
String[] parts = data.split(java.util.regex.Pattern.quote("$"));