返回顶部
首页 > 资讯 > 后端开发 > JAVA >java判断变量是不是数字方法总结
  • 729
分享到

java判断变量是不是数字方法总结

java 2015-01-05 00:01:58 729人浏览 绘本
摘要

java判断变量是不是数字方法:(相关视频课程推荐:java视频教程)用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = 0; i < str.length

java判断变量是不是数字方法:(相关视频课程推荐:java视频教程

用JAVA自带的函数

public static boolean isNumeric(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;
}

正则表达式

首先要import java.util.regex.Pattern 和 java.util.regex.Matcher

public boolean isNumeric(String str){
   Pattern pattern = Pattern.compile("[0-9]*");
   Matcher isNum = pattern.matcher(str);
   if( !isNum.matches() ){
       return false;
   }
   return true;
}

使用org.apache.commons.lang

org.apache.commons.lang.StringUtils;
boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");
Http://jakarta.apache.org/commons/lang/api-release/index.html下面的解释:
isNumeric
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

上面三种方式中,第二种方式比较灵活。

第一、三种方式只能校验不含负号“-”的数字,即输入一个负数-199,输出结果将是false;

而第二方式则可以通过修改正则表达式实现校验负数,将正则表达式修改为“^-?[0-9]+”即可,修改为“-?[0-9]+.?[0-9]+”即可匹配所有数字。

如果我输入的是"a“,它能识别出来这个不是数字,该怎么写?

import java.io.* ;
import java.util.* ;
public class Test{
public static void main(String [] args) throws Exception{
System.out.println("请输入数字:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
   String line=br.readLine();
    if(line.matches("\d+"))     //正则表达式 详细见java.util.regex 类 Pattern
   System.out.println("数字");
   else
   System.out.println("非数字");
}
}

("d")是数字0-9 ("\d+")是什么意思?

正则表达式用两个斜杠表示一个斜杠,后面跟着一个加号表示出现一次或多次,完整的意思就是整个字符串中仅包含一个或多个数字。

判断ASCII码值

 public static boolean isNumeric0(String str){
  for(int i=str.length();--i>=0;){
   int chr=str.charAt(i);
   if(chr<48 || chr>57)
    return false;
  }
  return true;
 }

逐个判断str中的字符是否是0-9

 public static boolean isNumeric3(String str){
  final String number = "0123456789";
  for(int i = 0;i
            if(number.indexOf(str.charAt(i)) == -1){  
             return false;  
            }  
  }  
  return true;
 }

捕获NumberFORMatException异常

 public static boolean isNumeric00(String str){
  try{
   Integer.parseInt(str);
   return true;
  }catch(NumberFormatException e){
   System.out.println("异常:"" + str + ""不是数字/整数...");
   return false;
  }
 }

ps:不提倡使用方法6,原因如下:

NumberFormatException是用来处理异常的,最好不要用来控制流程的。

虽然捕捉一次异常很容易,但是创建一次异常会消耗很多的系统资源,因为它要给整个结构作一个快照。

看一下jdk源码

 public static long parseLong(String s,int radix)  
         throws NumberFormatException  
 {  
    if(s == null){  
       throw   new   NumberFormatException("null");  
    }  
    if(radix < Character.MIN_RADIX){  
           throw new NumberFormatException("radix " + radix +
           " less than Character.MIN_RADIX");  
    }  
    if(radix > Character.MAX_RADIX){  
           throw new NumberFormatException("radix " + radix +
           " greater than Character.MAX_RADIX");  
    }  
    long result = 0;  
    boolean negative = false;
    int i = 0,max = s.length();  
    long limit;  
    long multmin;  
    int digit;
    if(max > 0){  
     if(s.charAt(0) == '-'){  
      negative = true;  
      limit = Long.MIN_VALUE;
      i++;
     }else{
      limit = -Long.MAX_VALUE;
     }  
     multmin = limit / radix;
     if(i < max){  
      digit = Character.digit(s.charAt(i++),radix);  
      if(digit < 0){
            throw new NumberFormatException(s);  
      }else{  
            result = -digit;
      }  
     }  
     while(i < max){  
      // Accumulating negatively avoids surprises near MAX_VALUE
      digit = Character.digit(s.charAt(i++),radix);  
      if(digit < 0){  
       throw new NumberFormatException(s);  
      }  
      if(result < multmin){  
       throw new NumberFormatException(s);  
      }  
      result *= radix;  
      if(result < limit + digit){  
       throw new NumberFormatException(s);  
      }  
      result -= digit;  
    }  
    }else{  
     throw   new   NumberFormatException(s);  
    }  
    if(negative){  
     if(i > 1){  
      return result;
     }else{  
      throw new NumberFormatException(s);  
     }  
    }else{  
     return   -result;  
    }  
 }

可以看出来jdk里也是一个字符一个字符的判断,如果有一个不是数字就抛出NumberFormatException,所以还不如这个工作由我们自己来做,还省得再抛出一次异常。

更多java相关文章请关注Java基础教程。

--结束END--

本文标题: java判断变量是不是数字方法总结

本文链接: https://lsjlt.com/news/1708.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java判断变量是不是数字方法总结
    java判断变量是不是数字方法:(相关视频课程推荐:java视频教程)用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = 0; i < str.length...
    99+
    2015-01-05
    java
  • Java判断变量是否为空问题的方法总结
    目录前言StringUtil.isEmpty()"".equals()同时判断多个字符串是否为空两种判断,哪种性能更好?两种判断,哪种可读性和易于维护性都好总结前...
    99+
    2023-05-17
    java判断变量是否为空的方法 java怎么判断是否为空 java如何判断空值
  • shell判断一个变量是否为空方法总结
    shell中如何判断一个变量是否为空 shell编程中,对参数的错误检查项中,包含了变量是否赋值(即一个变量是否为空),判断变量为空方法如下: 1.变量通过" "引号引起来 #!/bin/sh para1= if ...
    99+
    2022-06-04
    shell 变量
  • java判断变量是否为数字的方法介绍
    java判断是否为数字的方法:(推荐:java视频教程)用正则表达式首先要import java.util.regex.Pattern 和 java.util.regex.Matcher public boolean isNumer...
    99+
    2019-04-13
    java基础 java
  • java判断字符串是不是数字的方法
    用JAVA自带的函数 public static boolean isNumericZidai(String str) { for (int i = 0; i < str.length(); i++) { ...
    99+
    2019-10-30
    java
  • java判断变量是否是字符串
    instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: (推荐学习:java课程)boolean result = obj instanceof Class其中 obj 为一个对...
    99+
    2015-07-05
    java入门 java
  • java判断不是数字的方法介绍
    java判断是否数字的方法:(推荐:java视频教程)方法一:用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;)...
    99+
    2018-02-23
    java
  • java判断字符串是不是数字
    java判断字符串是否数字的方法:(推荐:java视频教程)方法一:用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--...
    99+
    2020-09-20
    java
  • java如何判断是不是数字
    java中判断是否是数字的方法:用正则表达式 public boolean isNumeric(String str){ Pattern pattern = Pattern.compile("[0-9]*");...
    99+
    2018-12-17
    java
  • es6如何判断变量是不是数组
    小编给大家分享一下es6如何判断变量是不是数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在es...
    99+
    2024-04-02
  • Android Camera是否支持变焦的判断方法总结
    最近老大交给了一个任务,说是要在本地视频端能够调节摄像头焦距。 碰到了一些问题: 1.手机支不支持摄像头变焦 2.系统自带摄像软件可以变焦,但是自己编写的程序不支持变焦, 这个...
    99+
    2022-06-06
    方法 Android
  • java判断日期是星期几的方法总结
    java取得指定日期是星期几的方法:(相关视频教程推荐:java视频教程)使用Calendar类//根据日期取得星期几 public static String getWeek(Date date){ String[] weeks =...
    99+
    2017-05-31
    java
  • java判断变量是否是int类型的方法介绍
    java中使用instanceof关键字判断是否是int:(推荐:java视频教程)Integer i = 0; if (i instanceof Integer) { System.out.println("haha"); }instan...
    99+
    2021-09-19
    java
  • java判断变量是否为空
    java判断变量是否为空1、判断字符串或者对象是否为空首先来看一下工具StringUtils的判断方法: a) org.apache.commons.lang3包下的StringUtilsStringUtils.isEmpty(CharSe...
    99+
    2015-05-06
    java基础 java 为空判断
  • 【总结】php判断字段是否不为空的几种常见方法
    PHP是一种极其强大的服务器端脚本语言,开发人员可以使用它构建出各种类型的Web应用程序。在开发过程中,判断字段是否不为空是一个常见的任务。本文将为您介绍PHP中判断字段是否不为空的几种常见方法。方法一:使用isset()函数isset()...
    99+
    2023-05-14
    php
  • thinkphp如何判断变量是否为数字
    这篇文章给大家分享的是有关thinkphp如何判断变量是否为数字的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方法:1、用“protected 变量=array(array('your_variable&...
    99+
    2023-06-29
  • 总结java中判断对象是否为空的方法
    我们想要判断对象是否为空,像基本类型那样判断是不可以的, ==={} ?这样是错误的,因为这只是比较引用地址是否相同,所以可以采取下面的方法来进行判断。根据for...in遍历对象,如果存在则返回true,否则返回falsefor ( le...
    99+
    2017-08-16
    java 判断 对象 为空 方法
  • php 判断变量是否是数组
    在PHP中,有时候需要判断一个变量是否是数组。这个判断对于程序的正确执行非常关键,因此需要特别注意。在PHP中,判断一个变量是否是数组可以使用is_array函数,该函数的使用非常简单,只需要将要判断的变量传入该函数中即可。示例代码如下:$...
    99+
    2023-05-19
  • java判断字符是否为数字的方法
    java判断字符是否为数字的方法:(推荐:java视频教程)使用Character.isDigit(char)判断char num[] = str.toCharArray();//把字符串转换为字符数组 StringBuffer title...
    99+
    2016-02-23
    java
  • java判断是否数字的方法详解
    java判断是否数字的方法:(推荐:java视频教程)用正则表达式首先要import java.util.regex.Pattern 和 java.util.regex.Matcher public boolean isNumeri...
    99+
    2021-08-04
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作