Ciao a tutti!

Premetto che sono abbastanza inesperto con Java e quindi probabilmente molti di voi rideranno delle mie lacune, ma proprio questo problema non sono riuscito a risolverlo.

Dunque, vorrei avere una funzione che analizza una stringa (contenente un numero telefonico scritto ad esempio nella forma "+39 0123 45678"), rimuovendone gli spazi e alcuni caratteri ('-' e '/') e modificando il carattere + con "00". Il codice è il seguente:

codice:
/* Rimpiazza caratteri dentro una stringa */
import java.io.*;
import java.util.*;

class Rimpiazza {
  public static void main(String[] args) throws IOException {
    
    String orig = "+39 0123 456789";
	
    System.out.println("Stringa non processata: \"" + orig+"\";");
	
    String mod_2;
	
    mod_2 = orig.replaceAll("/","");             // Elimina carattere /
    mod_2 = mod_2.replaceAll("-","");         // Elimina carattere -
    mod_2 = mod_2.replaceAll("\\+","00");   // Elimina carattere +
    mod_2 = mod_2.replaceAll("^\\s+", "");  // Elimina spazi all'inizio della stringa
    mod_2 = mod_2.replaceAll("\\s+$", "");  // Elimina spazi alla fine della stringa
    mod_2 = mod_2.replaceAll("\\b\\s{1,}\\b", ""); // Elimina spazi singoli e multipli all'interno della stringa

    System.out.println("Stringa mod_2: \"" + mod_2 +"\";");

    int mod_2_int = -1;	
    try
    {
        mod_2_int = Integer.parseInt(mod_2);  
    }
    catch (NumberFormatException nfe){
	nfe.printStackTrace();
    }	

    System.out.println("Stringa mod_2 convertita in intero: \"" + mod_2_int +"\";");	
  }	
}
Se la stringa origin è " 0123 456789" l'output del programma è il seguente:

Stringa non processata: " 0123 456789";
Stringa mod_2: "0123456789";
Stringa mod_2 convertita in intero: "123456789";
Se la stringa origin è "+39 0123 456789" l'output del programma è il seguente:

Stringa non processata: "+39 0123 456789";
Stringa mod_2: "00390123456789";
java.lang.NumberFormatException: For input string: "00390123456789"
at java.lang.NumberFormatException.forInputString(Unk nown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Rimpiazza.main(Rimpiazza.java:26)
Stringa mod_2 convertita in intero: "-1";
Secondo voi perchè si verifica questo errore? C'è un modo per evitarlo? E se si, quale? Vi prego, aiutatemi, sono in crisi nera.