Java 中的电话号码数据类型
Mohammad Irfan
2023年10月12日
本教程介绍了在 Java 中存储电话号码的最佳数据类型,以及如何在 Java 实体中使用它。
电话号码是一个数值并且只包含数字,所以一开始你可能会想到长型来存储它,但最好的数据类型是字符串,因为它会破坏格式,删除前面的 0,并且其他不受欢迎的事情。
在处理电话号码时,我们必须首先了解从用户那里获得的输入格式。例如,国家代码+ 区号+ 电话号码
的格式需要 String 类型,只取电话号码
就可以用 long 类型存储。
让我们通过一些 Java 和 Hibernate 示例来理解。
在 Java 中存储电话号码的数据类型
在此示例中,我们使用 long 类型在 Java 中存储数字(电话号码)值。数值在范围以内就好了;否则,编译器会抛出一系列错误。如果电话号码包含非数字数字(例如 +
)则不好。因此,我们必须在接受用户输入之前了解输入格式。请参阅下面的示例。
public class SimpleTesting {
public static void main(String args[]) {
Student student = new Student(10, "Rohan", 1245232542);
System.out.println("id = " + student.getId());
System.out.println("Name = " + student.getName());
System.out.println("Phone Number = " + student.getPhoneNumber());
Student student2 = new Student(11, "Sohan", +1245232542);
System.out.println("id = " + student2.getId());
System.out.println("Name = " + student2.getName());
System.out.println("Phone Number = " + student2.getPhoneNumber());
}
}
class Student {
int id;
String name;
long phoneNumber;
public Student(int id, String name, long phoneNumber) {
super();
this.id = id;
this.name = name;
this.phoneNumber = phoneNumber;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(long phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
输出:
id = 10
Name = Rohan
Phone Number = 1245232542
id = 11
Name = Sohan
Phone Number = 1245232542
在 Java 中存储电话号码的字符串数据类型
如果我们在上面的示例中使用带有电话号码的 +
符号,它不起作用,并且 Java 编译器不支持。Java 中最好使用 String 类型来保存电话号码来解决这个问题。现在,我们以国家代码+ 区号+ 电话号码
格式存储电话号码。请参阅下面的示例。
public class SimpleTesting {
public static void main(String args[]) {
Student student = new Student(10, "Rohan", "1245232542");
System.out.println("id = " + student.getId());
System.out.println("Name = " + student.getName());
System.out.println("Phone Number = " + student.getPhoneNumber());
Student student2 = new Student(11, "Sohan", "+911245232542");
System.out.println("id = " + student2.getId());
System.out.println("Name = " + student2.getName());
System.out.println("Phone Number = " + student2.getPhoneNumber());
}
}
class Student {
int id;
String name;
String phoneNumber;
public Student(int id, String name, String phoneNumber) {
super();
this.id = id;
this.name = name;
this.phoneNumber = phoneNumber;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
输出:
id = 10
Name = Rohan
Phone Number = 1245232542
id = 11
Name = Sohan
Phone Number = +911245232542
在实体类 Java 中存储电话号码
如果你正在使用 hibernate 并创建了一个具有一个字段(如电话号码)的实体,你应该将其声明为一个字符串来存储具有非数字数字的电话号码。
在 hibernate 中,这个实体类映射到 MySQL 或 Oracle 数据库中的表,并使用 varchar 类型来存储电话号码。这是一个高级概念,如果你不熟悉 ORM 或 hibernate 概念,请跳过此示例。
package com.example.myspring;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity // This tells Hibernate to make a table
public class User {
@Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id;
private String name;
private String email;
private String phoneNumber; // phone number
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}