Tentando quebrar String?

Eu tô com a seguinte String;

ST300CMD;Res;00000000;010;PresetA;NTW;0;internet;;;111.111.111.111;8600;;;;1234;RPT;60;180;120;60;3;0;0;;;;EVT;1;60;0;3;2;2;30;20;20;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;GSM;0;;;;;0;;;;;;;;SVC;1;120;0;0;0;0;1;1;1;0;0;0;0;ADP;U;T;2;9000;0;0;0;0;0;0;

Eu preciso quebrar essa string da seguinte maneira;

NTW;0;internet;;;111.111.111.111;8600;;;;1234; RPT;60;180;120;60;3;0;0;;;; EVT;1;60;0;3;2;2;30;20;20;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0; GSM;0;;;;;0;;;;;;;; SVC;1;120;0;0;0;0;1;1;1;0;0;0;0; ADP;U;T;2;9000;0;0;0;0;0;0;

Já pesquisei de tudo aqui mas não acho informação. Alguém me dá uma mão?

Utilize indexOf para buscar a posição de cada elemento depois substring para pegar as partes, exemplo:

String c = "ST300CMD;Res;00000000;010;PresetA;NTW;0;internet;;;111.111.111.111;8600;;;;1234;RPT;60;180;120;60;3;0;0;;;;EVT;1;60;0;3;2;2;30;20;20;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;GSM;0;;;;;0;;;;;;;;SVC;1;120;0;0;0;0;1;1;1;0;0;0;0;ADP;U;T;2;9000;0;0;0;0;0;0;";
int indexNTW = c.indexOf("NTW");
int indexRPT = c.indexOf("RPT");
int indexEVT = c.indexOf("EVT");
int indexGSM = c.indexOf("GSM");
int indexSVC = c.indexOf("SVC");
int indexADP = c.indexOf("ADP");

System.out.println(c.substring(indexNTW, indexRPT));
System.out.println(c.substring(indexRPT, indexEVT));
System.out.println(c.substring(indexEVT, indexGSM));
System.out.println(c.substring(indexGSM, indexSVC));
System.out.println(c.substring(indexSVC, indexADP));
System.out.println(c.substring(indexADP));

Exemplo OnLine