How to Get All Digits from String in Java

This Java example shows how checks if a String contains Unicode digits, if yes then concatenate all the digits in and return it as a String.

How to Get All Digits from String in Java

package com.javaguides.strings.utils;

public class StringUtility {


    public static void main(String[] args) {
        System.out.println(getDigits("source Code Examples 12345"));
        System.out.println(getDigits("java 123Guides45"));
    }

    /**
     * <p>
     * Checks if a String {@code str} contains Unicode digits, if yes then
     * concatenate all the digits in {@code str} and return it as a String.
     * </p>
     *
     * <p>
     * An empty ("") String will be returned if no digits found in {@code str}.
     * </p>
     * 
     * @param str
     *            the String to extract digits from, may be null
     * @return String with only digits, or an empty ("") String if no digits
     *         found, or {@code null} String if {@code str} is null
     * @since 3.6
     */
    public static String getDigits(final String str) {
        if (isEmpty(str)) {
            return str;
        }
        final int sz = str.length();
        final StringBuilder strDigits = new StringBuilder(sz);
        for (int i = 0; i < sz; i++) {
            final char tempChar = str.charAt(i);
            if (Character.isDigit(tempChar)) {
                strDigits.append(tempChar);
            }
        }
        return strDigits.toString();
    }

    public static boolean isEmpty(final CharSequence cs) {
        return cs == null || cs.length() == 0;
    }
}
Output:
12345
12345

Comments