Java の電話番号データ型
![Java の電話番号データ型](/img/Java/feature-image---phone-number-data-type-in-java.webp)
このチュートリアルでは、Java で電話番号を格納するのに最適なデータ型と、それを Java エンティティで使用する方法を紹介します。
電話番号は数値であり、数字のみが含まれているため、最初は長いタイプを格納することを考えるかもしれませんが、フォーマットを台無しにし、先行する 0 を削除し、他の望ましくないもの。
電話番号を操作するときは、最初にユーザーからの入力形式を理解する必要があります。たとえば、国コード+ 市外局番+ 電話番号
の形式には文字列タイプが必要であり、電話番号
のみを取得して長いタイプに格納できます。
いくつかの Java と Hibernate の例で理解しましょう。
Java で電話番号を保存するためのデータ型
この例では、Java で数値(電話番号)値を格納するために long 型を使用しました。数値が範囲内であれば良いです。それ以外の場合、コンパイラはさまざまなエラーをスローします。電話番号に+
などの数字以外の数字が含まれていると、適切ではありません。したがって、ユーザー入力を取得する前に、入力形式を理解する必要があります。以下の例を参照してください。
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 で電話番号を保持するために文字列タイプを使用することをお勧めします。現在、電話番号は国番号+ 市外局番+ 電話番号
の形式で保存されています。以下の例を参照してください。
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 を使用していて、電話番号のような 1つのフィールドを持つエンティティを作成した場合は、数字以外の数字を持つ電話番号を格納する文字列としてそれを宣言する必要があります。
hibernate では、このエンティティクラスは MySQL または Oracle データベースのテーブルにマップされ、varchar タイプを使用して電話番号を格納します。これは高度な概念であり、ORM または休止状態の概念に精通していない場合は、この例をスキップしてください。
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;
}
}