java.lang.NumberFormatException: para cadena de entrada

el eclipse dice que Lang y no puedo encontrar una solución

Excepción en el hilo “principal” java.lang.NumberFormatException: Para cadena de entrada: “2463025552” en java.lang.NumberFormatException.forInputString (Fuente desconocida) en java.lang.Integer.parseInt (Fuente desconocida) en java.lang.Integer. parseInt (Fuente desconocida) en Main.main (Main.java:31)

String s2[]=s.split("\\,"); Records rec=new Records(); rec.setName(s1[0]); rec.setAddres(s2[0]); phone = Integer.parseInt( s2[1].trim() ); System.out.println(phone); 

Leo desde el archivo en este formato nombre-adres, teléfono y anuncio en la lista de arrays para teléfono tengo problema

Integer.parseInt arroja una NumberFormatException si la cadena pasada no es una representación válida de un entero. aquí está intentando pasar 2463025552, que está fuera del rango de enteros .

usar en vez de largo

 long phone = Long.parseLong(s2[1].trim() ) 

El verdadero problema es que un número de teléfono no es un número entero. Es una String . No debe almacenarlo como un número, por razones similares al problema que se encuentra ahora. Lo mismo se aplica a los códigos postales, los números de camiseta del equipo deportivo y una serie de otros números “falsos”.

Un entero firmado de 32 bits solo puede leer hasta 2 ^ 31. Tienes que usar un tipo de datos más grande. largo te llevará hasta 2 ^ 63.

Lo básico es que no necesitamos un número de teléfono para formar parte de un cálculo aritmético, como sum, resta, etc. Por lo tanto, podemos tomarlo como una cadena de forma segura.

 2463025552 

está fuera de rango para el tipo de datos int; intente dar un número menor. También verifique si está en formato de número correcto (como sin espacios, etc.)

Cambie su tipo de datos a longint o bigint. Su cadena es demasiado larga, entonces int por eso tiene una excepción ..

Integer.parseInt( s2[1].trim() ); aquí está tu problema Por lo tanto, cambie su Integer análisis a Long