Maison > Java > JavaBase > le corps du texte

Comment déterminer si une chaîne est un nombre en Java

Libérer: 2019-11-22 16:37:25
original
4143 Les gens l'ont consulté

Comment déterminer si une chaîne est un nombre en Java

用JAVA自带的函数

    public static boolean isNumericZidai(String str) {
        for (int i = 0; i < str.length(); i++) {
            System.out.println(str.charAt(i));
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }
Copier après la connexion

其中Character.isDigit方法:确定或判断指定字符是否是一个数字。

测试方法:

    public static void main(String[] args) {
        double aa = -19162431.1254;
        String a = "-19162431.1254";
        String b = "-19162431a1254";
        String c = "中文";
        System.out.println(isNumericzidai(Double.toString(aa)));
        System.out.println(isNumericzidai(a));
        System.out.println(isNumericzidai(b));
        System.out.println(isNumericzidai(c));
    }
Copier après la connexion

结果显示:

false
false
false
false
Copier après la connexion

这种方法显然不能判断 负数。

用正则表达式

    /**
     * 匹配是否为数字
     * @param str 可能为中文,也可能是-19162431.1254,不使用BigDecimal的话,变成-1.91624311254E7
     * @return
     * @date 2016年11月14日下午7:41:22
     */
    public static boolean isNumeric(String str) {
        // 该正则表达式可以匹配所有的数字 包括负数
        Pattern pattern = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");
        String bigStr;
        try {
            bigStr = new BigDecimal(str).toString();
        } catch (Exception e) {
            return false;//异常 说明包含非数字。
        }

        Matcher isNum = pattern.matcher(bigStr); // matcher是全匹配
        if (!isNum.matches()) {
            return false;
        }
        return true;
    }
Copier après la connexion

使用org.apache.commons.lang

public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.
null will return false. An empty String ("") will return true.
 StringUtils.isNumeric(null)   = false
 StringUtils.isNumeric("")     = true
 StringUtils.isNumeric("  ")   = false
 StringUtils.isNumeric("123")  = true
 StringUtils.isNumeric("12 3") = false
 StringUtils.isNumeric("ab2c") = false
 StringUtils.isNumeric("12-3") = false
 StringUtils.isNumeric("12.3") = false

Parameters:
str - the String to check, may be null 
Returns:
true if only contains digits, and is non-null
Copier après la connexion

更多java知识请关注java基础教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal