JAVA判断字符串是否为数字

在进行JAVA习题的时候,经常会遇到提取字符串中的数字的问题,怎么解决呢?这里提供几种方法:
  几种方法由自己写的方法向JAVA自带的函数转向,代码的执行速度越来越快,执行效率越来越高。
其中第一个方法为自己写的,是从ASCII的角度判断的,类似的如果想判断字母也同理。
第二个方法中的isDigit方法需要JAVA的java.lang.Character.*包,如果用这种方法需要引包。
后两个方法的Pattern类需要JAVA的java.util.regex.Pattern包,也需引包。
这种Pattern正则表达式的方式判断的最快,其中最后一个是最快的。最后一个的compile中的[-\+]表示可能带±号,所以就显得更为强大了,当然,如果不需要可以不加这个,后面的[\d]表示数字,([\.d]表示浮点数)。所以看到这里,你有没有想记住这个很强的方法!

测试代码

import java.util.Scanner;
import java.util.regex.Pattern;

import static java.lang.Character.isDigit;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        String[] str1 = str.split(" ");
        System.out.println("第一个方法:");
        for (int i = 0; i < str1.length; i++){
            if (isNumberic0(str1[i])){
                System.out.print(str1[i] + "\t");
            }
        }
        System.out.println("\n");
        System.out.println("第二个方法:");
        for (int i = 0; i < str1.length; i++){
            if (isNumberic1(str1[i])){
                System.out.print(str1[i] + "\t");
            }
        }
        System.out.println("\n");
        System.out.println("第三个方法:");
        for (int i = 0; i < str1.length; i++){
            if (isNumberic2(str1[i])){
                System.out.print(str1[i] + "\t");
            }
        }
        System.out.println("\n");
        System.out.println("第四个方法:");
        for (int i = 0; i < str1.length; i++){
            if (isNumberic3(str1[i])){
                System.out.print(str1[i] + "\t");
            }
        }
        System.out.println("\n");
    }
    public static boolean isNumberic0(String str){
        for (int i = 0; i < str.length(); i++){
            if (str.charAt(i) > '9' || str.charAt(i) < '0'){
                return false;
            }
        }
        return true;
    }
    public static boolean isNumberic1(String str){
        for (int i = str.length()-1; i >= 0; i--){
            if(!isDigit(str.charAt(i))){
                return false;
            }
        }
        return true;
    }
    public static boolean isNumberic2(String str){
        Pattern pattern = Pattern.compile("[0-9]*");
        return pattern.matcher(str).matches();
    }
    public static boolean isNumberic3(String str){
        Pattern pattern = Pattern.compile("[-\\+]?[\\d]*$");
        return pattern.matcher(str).matches();
    }
}

在这里插入图片描述
在这里插入图片描述
由于我也是初学者,所以这里解释的可能会有纰漏,欢迎大神指出!
感谢师傅来访,技术不精,请勿吐槽,如有问题请留言。

发布了19 篇原创文章 · 获赞 30 · 访问量 4936

猜你喜欢

转载自blog.csdn.net/weixin_45652695/article/details/105141290
今日推荐