Javaにおける文字列の検証
メニューを表示するにはスワイプしてください
テキスト入力を扱う際、ユーザーが期待通りに入力してくれることはほとんどありません。入力欄を空のままにしたり、スペースだけを入力したり、必要な記号を忘れたりすることがあります。そのため、プログラムで文字列を使用する前に、まずバリデーション(検証)を行い、特定のルールに従っているかどうかを確認する必要があります。
これまでに isEmpty()、length()、contains() などの基本的なメソッドを見てきましたが、ここでは実際の入力バリデーションで特に役立ついくつかのメソッドを追加で紹介します。
isBlank()
文字列が技術的には空ではないものの、スペースだけが含まれているという問題は非常によくあります。たとえば、ユーザーが名前を「入力」したつもりでも、スペースキーだけを数回押した場合などです。.isBlank() は、このような空白のみの文字列を無効な入力として扱います。戻り値は boolean 型です。
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String customerName = " "; boolean isBlankName = customerName.isBlank(); System.out.println(isBlankName); } }
customerName は完全に空ではありませんが、スペースのみが含まれているため、.isBlank() は true を返し、意味のある内容が存在しないことを示します。
startsWith()
文字列が特定の構造に従っているかを確認する必要がある場合があります。たとえば、システム内のすべての注文コードが "ORD" で始まる必要がある場合、.startsWith() は文字列の先頭をチェックし、boolean を返します。
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String orderCode = "ORD-2459"; boolean validOrderCode = orderCode.startsWith("ORD"); System.out.println(validOrderCode); } }
.startsWith("ORD") は、orderCode の最初の3文字をチェックします。これらが一致するため、true を返し、コードが期待される形式に従っていることを確認します。
endsWith()
文字列の末尾を検証することもできます。これは特にファイル名やフォーマットの確認に便利です。例えば、レシートファイルが実際にPDFであることを確認する場合などです。boolean を返します。
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String receiptFile = "receipt.pdf"; boolean validReceiptFile = receiptFile.endsWith(".pdf"); System.out.println(validReceiptFile); } }
.endsWith(".pdf") は、receiptFile の最後の4文字を確認します。これが ".pdf" と一致するため、true を返します。
複合バリデーション
実際のバリデーションは通常、1つのチェックだけでなく、複数のルールが組み合わさって行われます。例えば、ユーザー名のバリデーションでは、空白でないこと、5文字以上であること、スペースを含まないことが求められます:
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { String username = "coffeeMaster"; boolean validUsername = !username.isBlank() && username.length() >= 5 && !username.contains(" "); System.out.println(validUsername); } }
3つの条件すべてが && で結合されており、ユーザー名はすべてのチェックを通過する必要があります。"coffeeMaster" は空白ではなく、5文字より多く、スペースも含まれていないため、validUsername は true となります。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
Javaにおける文字列の検証
テキスト入力を扱う際、ユーザーが期待通りに入力してくれることはほとんどありません。入力欄を空のままにしたり、スペースだけを入力したり、必要な記号を忘れたりすることがあります。そのため、プログラムで文字列を使用する前に、まずバリデーション(検証)を行い、特定のルールに従っているかどうかを確認する必要があります。
これまでに isEmpty()、length()、contains() などの基本的なメソッドを見てきましたが、ここでは実際の入力バリデーションで特に役立ついくつかのメソッドを追加で紹介します。
isBlank()
文字列が技術的には空ではないものの、スペースだけが含まれているという問題は非常によくあります。たとえば、ユーザーが名前を「入力」したつもりでも、スペースキーだけを数回押した場合などです。.isBlank() は、このような空白のみの文字列を無効な入力として扱います。戻り値は boolean 型です。
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String customerName = " "; boolean isBlankName = customerName.isBlank(); System.out.println(isBlankName); } }
customerName は完全に空ではありませんが、スペースのみが含まれているため、.isBlank() は true を返し、意味のある内容が存在しないことを示します。
startsWith()
文字列が特定の構造に従っているかを確認する必要がある場合があります。たとえば、システム内のすべての注文コードが "ORD" で始まる必要がある場合、.startsWith() は文字列の先頭をチェックし、boolean を返します。
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String orderCode = "ORD-2459"; boolean validOrderCode = orderCode.startsWith("ORD"); System.out.println(validOrderCode); } }
.startsWith("ORD") は、orderCode の最初の3文字をチェックします。これらが一致するため、true を返し、コードが期待される形式に従っていることを確認します。
endsWith()
文字列の末尾を検証することもできます。これは特にファイル名やフォーマットの確認に便利です。例えば、レシートファイルが実際にPDFであることを確認する場合などです。boolean を返します。
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String receiptFile = "receipt.pdf"; boolean validReceiptFile = receiptFile.endsWith(".pdf"); System.out.println(validReceiptFile); } }
.endsWith(".pdf") は、receiptFile の最後の4文字を確認します。これが ".pdf" と一致するため、true を返します。
複合バリデーション
実際のバリデーションは通常、1つのチェックだけでなく、複数のルールが組み合わさって行われます。例えば、ユーザー名のバリデーションでは、空白でないこと、5文字以上であること、スペースを含まないことが求められます:
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { String username = "coffeeMaster"; boolean validUsername = !username.isBlank() && username.length() >= 5 && !username.contains(" "); System.out.println(validUsername); } }
3つの条件すべてが && で結合されており、ユーザー名はすべてのチェックを通過する必要があります。"coffeeMaster" は空白ではなく、5文字より多く、スペースも含まれていないため、validUsername は true となります。
フィードバックありがとうございます!