una considerazione: da dove prendi la stringa? Tu supponi che la suddivisione venga fatta per /, - oppure blank, ma sei in grado di fissare un formato standard (es separatore blank) e lavorare su quello?
In tal caso la stesura dell'algoritmo è molto più semplice.

Poi in generale se è un numero di telefono, puoi
+39 0123 4567
codice:
StringBuffer buffer = new StringBuffer("");
if (str.startsWith("+39")){
  str = str.substring(3).trim();
  buffer.append("00");
}
e fin qui ti trovi a lavorare con

0123 4567

e hai in buffer già 00

poi fai uno split per blank

codice:
String tmp[] = str.split(" ");
if (tmp != null && tmp.length > 0){
   for (String tmps : tmp) buffer.append(tmps);
}
e in buffer hai alla fine

0001234567
poi non so che senso abbia un numero di telefono convertito in intero (al max long), in genere lo si lascia in formato stringa visto che in questo caso ti perderesti lo 0 iniziale del numero