📌  相关文章
📜  如何在Java检查字符串是否仅包含数字

📅  最后修改于: 2021-04-27 05:23:59             🧑  作者: Mango

给定字符串str ,任务是编写一个Java程序来检查字符串是否仅包含数字。如果是这样,则打印true,否则打印false。
例子:

  1. 使用遍历:想法是遍历字符串的每个字符,并检查字符串中的字符是否仅包含从0到9的数字。如果字符串的所有字符仅包含数字,则返回true,否则返回false。

    下面是上述方法的实现:

    // Java program for the above approach
    // contains only digits
    class GFG {
      
        // Function to check if a string
        // contains only digits
        public static boolean
        onlyDigits(String str, int n)
        {
            // Traverse the string from
            // start to end
            for (int i = 0; i < n; i++) {
      
                // Check if character is
                // digit from 0-9
                // then return true
                // else false
                if (str.charAt(i) >= '0'
                    && str.charAt(i) <= '9') {
                    return true;
                }
                else {
                    return false;
                }
            }
            return false;
        }
      
        // Driver Code
        public static void main(String args[])
        {
            // Given string str
            String str = "1234";
            int len = str.length();
      
            // Function Call
            System.out.println(onlyDigits(str, len));
        }
    }
    
    输出:
    true
    

    时间复杂度: O(N) ,其中N是给定字符串的长度。
    辅助空间: O(1)

  2. 使用字符 .isDigit(char ch):想法是遍历字符串的每个字符,并使用字符 .isDigit(char ch)检查指定字符是否为数字。如果字符是数字,则返回true,否则返回false。

    下面是上述方法的实现:

    // Java program to check if a string
    // contains only digits
    class GFG {
      
        // Function to check if a string
        // contains only digits
        public static boolean
        onlyDigits(String str, int n)
        {
      
            // Traverse the string from
            // start to end
            for (int i = 0; i < n; i++) {
      
                // Check if the sepecified
                // character is a digit then
                // return true,
                // else return false
                if (Character.isDigit(str.charAt(i))) {
                    return true;
                }
                else {
                    return false;
                }
            }
            return false;
        }
      
        // Driver Code
        public static void main(String args[])
        {
            // Given string str
            String str = "1234";
            int len = str.length();
      
            // Function Call
            System.out.println(onlyDigits(str, len));
        }
    }
    
    输出:
    true
    

    时间复杂度: O(N) ,其中N是给定字符串的长度。
    辅助空间: O(1)

  3. 使用正则表达式:
    1. 获取字符串。
    2. 创建一个正则表达式以检查仅包含数字的字符串,如下所述:
      regex = "[0-9]+";
      
    3. 将给定的字符串与正则表达式匹配。在Java,这可以通过使用Pattern.matcher()来完成。
    4. 如果字符串与给定的正则表达式匹配,则返回true;否则返回false。

    下面是上述方法的实现:

    // Java program to check if a string
    // contains only digits
    import java.util.regex.*;
    class GFG {
      
        // Function to validate URL
        // using regular expression
        public static boolean
        onlyDigits(String str)
        {
            // Regex to check string
            // contains only digits
            String regex = "[0-9]+";
      
            // Compile the ReGex
            Pattern p = Pattern.compile(regex);
      
            // If the string is empty
            // return false
            if (str == null) {
                return false;
            }
      
            // Find match between given string
            // and regular expression
            // using Pattern.matcher()
            Matcher m = p.matcher(str);
      
            // Return if the string
            // matched the ReGex
            return m.matches();
        }
      
        // Driver Code
        public static void main(String args[])
        {
            // Given string str
            String str = "1234";
      
            // Function Call
            System.out.println(onlyDigits(str));
        }
    }
    
    输出:
    true
    

    时间复杂度: O(N) ,其中N是给定字符串的长度。
    辅助空间: O(1)