Java Program to Check If the String Contains Only Letters or Digits

Introduction

In many scenarios, you may need to validate a string to ensure it contains only letters and/or digits. Java provides various methods to perform this check efficiently. In this guide, we will create a Java program that checks whether a given string consists solely of letters and digits.

Problem Statement

Create a Java program that:

  • Takes a string as input.
  • Check if the string contains only letters (A-Z, a-z) and digits (0-9).
  • Displays the result indicating whether the string is valid.

Example 1:

  • Input: "Java123"
  • Output: The string "Java123" contains only letters and digits.

Example 2:

  • Input: "Java@123"
  • Output: The string "Java@123" contains characters other than letters and digits.

Solution Steps

  1. Prompt for Input: Use the Scanner class to read a string input from the user.
  2. Check the String: Use the String class methods to verify if the string contains only letters and digits.
  3. Display the Result: Print whether the string is valid (contains only letters and digits) or not.

Java Program

import java.util.Scanner;

/**
 * Java Program to Check If the String Contains Only Letters or Digits
 * Author: https://www.javaguides.net/
 */
public class CheckLettersDigits {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Step 1: Prompt the user for input
        System.out.print("Enter a string to check if it contains only letters and digits: ");
        String input = scanner.nextLine();

        // Step 2: Check if the string contains only letters and digits
        boolean isValid = containsOnlyLettersAndDigits(input);

        // Step 3: Display the result
        if (isValid) {
            System.out.println("The string \"" + input + "\" contains only letters and digits.");
        } else {
            System.out.println("The string \"" + input + "\" contains characters other than letters and digits.");
        }
    }

    // Method to check if a string contains only letters and digits
    public static boolean containsOnlyLettersAndDigits(String str) {
        return str.chars().allMatch(Character::isLetterOrDigit);
    }
}

Explanation

Step 1: Prompt for Input

  • The program uses the Scanner class to read a string input from the user. This string will be checked to see if it contains only letters and digits.

Step 2: Check If the String Contains Only Letters and Digits

  • The containsOnlyLettersAndDigits method is called with the input string as the argument.
  • This method uses str.chars().allMatch(Character::isLetterOrDigit) to verify that all characters in the string are either letters or digits:
    • str.chars() converts the string into an IntStream of character codes.
    • allMatch(Character::isLetterOrDigit) checks if every character in the stream is a letter or digit.

Step 3: Display the Result

  • The program prints a message based on whether the string contains only letters and digits:
    • If the string is valid, it prints that the string contains only letters and digits.
    • If the string contains other characters, it prints that the string contains characters other than letters and digits.

Output Examples

Example 1:

Enter a string to check if it contains only letters and digits: Java123
The string "Java123" contains only letters and digits.

Example 2:

Enter a string to check if it contains only letters and digits: Java@123
The string "Java@123" contains characters other than letters and digits.

Conclusion

This Java program efficiently checks whether a given string contains only letters and digits. By using the Stream API and the Character.isLetterOrDigit method, the program performs the validation in a concise and readable manner. This method is useful in various applications where input validation is required, such as user authentication, data processing, and more.

Comments