java中判断字符串是否为数字的方法的几种方法

Java中判断字符串是否为数字的方法:

1.用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;
 }

2.用正则表达式
首先要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;
}

3.使用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]+”即可匹配所有数字。
时间: 2024-10-16 17:12:28

java中判断字符串是否为数字的方法的几种方法的相关文章

字符串--java中判断字符串是否为数字的方法的几种方法?

ava中判断字符串是否为数字的方法: 1.用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; } 2.用正则表达式 首先要import java.u

Java中判断字符串是否为数字的五种方法

推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 方法二: Java代码   /* * 判断是否为整数 * @param str 传入的字符串 * @return

Java中判断字符串是否为数字的五种方法 (转)

推荐使用第二个方法,速度最快. 方法一:用JAVA自带的函数 Java代码   public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } public static boolean isNumeric(String str){ for (int i

java中判断字符串是否为数字的三种方法

//    1用JAVA自带的函数    public static boolean isNumericFirst(String str){      for (int i = str.length();--i>=0;){          if (!Character.isDigit(str.charAt(i))){        return false;       }      }      return true;     } //2用正则表达式    public static bo

java中判断字符串是否相等有两种方法:

1.用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",那么a==b将返回true.这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象:再比如:String a=new String("abc");String b=new String("abc");那么a==b将返回false,因为a和b指向不同的对

java 中判断字符串是否相等

周末老师让写一个 猜数字的java小游戏,随机生成一个不同的四位数,然后根据用户的输入来判断 ,给出相应的结果 每次都是输入4位数字,按照标准, 分为数字存在(记录为B): 数字存在且位置正确(记录为A) 例如: 生成数字1234 竞猜数字: 1367(提示竞猜结论: 1A1B) 然后我结果定义的返回类型是一个字符串,然后用一个String jieguo来接收,在最后判断是否猜中数字时,应该和字符串"4A"进行比较, 开始我直接就用if(jieguo=="4A")来

Shell中判断字符串是否为数字的6种方法分享

#!/bin/bash ## 方法1 a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] && echo string a is numbers 第一个-n是shell的测试标志,对后面的串"`sed -n '/^[0-9][0-9]*$/p'`" 进行测试,如果非空,则结果为真. sed默认会显示所有输入行信息的,sed 的“-n”选项是让sed不要显示,而只显示我们所需要

java中一个类要当作线程来使用有两种方法

1.继承Thread类,并重写run函数 2.实现Runnable接口,并重写run函数 因为java是单继承的,在某些情况下一个类可能已经继承了某个父类,这时在用继承Thread类方法来创建线程显然不可能java设计者们提供了另外一个方式创建线程,就是通过实现Runnable接口来创建线程.

.Net中把字符串(String)格式转换为DateTime类型的三种方法

方式一:Convert.ToDateTime(string)  Convert.ToDateTime(string)  注意:string格式有要求,必须是yyyy-MM-dd hh:mm:ss 方式二:Convert.ToDateTime(string, IFormatProvider) 1 DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo(); 2 dtFormat.ShortDatePatter