¿Debo almacenar números de teléfono como cadenas o enteros?

Estoy tratando de decidir entre almacenar un número de teléfono como una string o un int . ¿Algunas ideas?

Para cualquier situación como esta, piense: ¿tendré que calcular algo con ese valor? Si eso no tiene ningún sentido, deberías usar una cuerda. En ese caso, no hay un caso lógico en el que usaría el número de teléfono como un número, así que use una cadena.

Recomiendo usar una cadena, ya que le da más flexibilidad cuando se trata de caracteres de formato y no numéricos como la extensión, etc.

Yo sugeriría usar String , aparte de cualquier otra cosa, de lo contrario no podrá almacenar los ceros iniciales. Definitivamente no debería usar int (demasiado pequeño) float o double (demasiado riesgo de pérdida de datos); long o BigInteger podría ser apropiado (aparte del problema de los ceros principales), pero francamente me gustaría ir con String . De esa manera también puede almacenar cualquier guión o espacio que el usuario haya ingresado para que sea más fácil recordar el número, si así lo desea.

Referencia: ¿Cuál es la forma correcta de representar números de teléfono?

Te recomiendo que uses una string para esto.

Si va a validar la entrada del número de teléfono, puede usar el pattern y el matcher de matcher regex para asegurarse de que se ingresó el número de teléfono en el formato correcto.