java 验证字符串是否为数字
package com.ywyself.utils; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; public class Number { /** * 检查是否为整数,不区分正负 * * @param str * @return true|当为整数时 */ public static boolean isInteger(String str) { return Pattern.compile("^-?([1-9]+[0-9]+)|0$").matcher(str).matches(); } /** * 检查是否为【正】整数 * * @param str * @return true|当为正整数时 */ public static boolean isIntegerPositive(String str) { return Pattern.compile("^0?[1-9]+$").matcher(str).matches(); } /** * 检查是否为【负】整数 * * @param str * @return true|当为负整数时 */ public static boolean isIntegerNegative(String str) { return Pattern.compile("^-0?[1-9]+$").matcher(str).matches(); } /** * 检查是否为浮点数 * * @param str * @return true|当为浮点数时 */ public static boolean isFloat(String str) { return Pattern.compile("^-?(([1-9][0-9]*\\.[0-9]*)|(0\\.[0-9]*))[1-9]+$").matcher(str).matches(); } /** * 检查是否为【正】浮点数 * * @param str * @return true|当为正浮点数时 */ public static boolean isFloatPositive(String str) { return Pattern.compile("^(([1-9][0-9]*\\.[0-9]*)|(0\\.[0-9]*))[1-9]+$").matcher(str).matches(); } /** * 检查是否为【负】浮点数 * * @param str * @return true|当为负浮点数时 */ public static boolean isFloatNegative(String str) { return Pattern.compile("^-(([1-9][0-9]*\\.[0-9]*)|(0\\.[0-9]*))[1-9]+$").matcher(str).matches(); } /** * 检查是否为数字,包含整数和浮点数,以及正负数 * * @param str * @return true|为整数或者浮点数 */ public static boolean isNumber(String str) { return isInteger(str) || isFloat(str); } public static void main(String[] args) { List<String> test = new ArrayList<String>(); test.add("0"); test.add("-0"); test.add("123"); test.add("-123"); test.add("0123"); test.add("-0123"); test.add("00123"); test.add("-00123"); test.add("0.123"); test.add("0.0123"); test.add("0.00123"); test.add("-0.123"); test.add("-0.0123"); test.add("-0.0123"); test.add("-0.00"); test.add("00.123"); test.add("-00.123"); System.out.println("------------整数"); for (String s : test) { System.out.printf("%5b %s\n", isInteger(s), s); } System.out.println("------------正整数"); for (String s : test) { System.out.printf("%5b %s\n", isIntegerPositive(s), s); } System.out.println("------------负整数"); for (String s : test) { System.out.printf("%5b %s\n", isIntegerNegative(s), s); } System.out.println("------------小数"); for (String s : test) { System.out.printf("%5b %s\n", isFloat(s), s); } System.out.println("------------正小数"); for (String s : test) { System.out.printf("%5b %s\n", isFloatPositive(s), s); } System.out.println("------------负小数"); for (String s : test) { System.out.printf("%5b %s\n", isFloatNegative(s), s); } System.out.println("------------数字"); for (String s : test) { System.out.printf("%5b %s\n", isNumber(s), s); } } }
package com.ywyself.utils; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Number { /** * 判断字符数组中的所有的元素是否为数字 * * @param character * 待检查的字符数组 * @return TRUE|是 */ public static boolean isNumberLegal(char[] character) { for (char c : character) { if (!Character.isDigit(c)) { return false; } } return true; } /** * 判断字符串是否为数字,忽略正负数 * * @param string * 待检查的字符串 * @param ignorePositiveAndNegative * 是否忽略正负,TRUE|去除字符串前面的一个“-”号(如果有) * @return TRUE|字符串为合法数字 */ public static boolean isNumber(String string, boolean ignorePositiveAndNegative) { if (string.startsWith("-") && ignorePositiveAndNegative) { string = string.substring(1); } return isNumberLegal(string.toCharArray()); } /** * 判断字符串是否全部为数字 * * @param string * 待检查的字符串 * @return TRUE|字符串为正数或者负数 */ public static boolean isNumber(String string) { return isNumber(string, true); } public static void main(String[] args) { System.out.println(isNumber("-123")); System.out.println(isNumber("-123", false)); System.out.println(isNumber("123")); System.out.println(isNumber("123", false)); } }
ywyself
相关推荐
-
读取a.txt和b.txt中有序的序列,合并有序序列保存成c.txt java
2019-1-13
-
List集合与Array数组之间的互相转换 java
2019-1-8
-
JAVA限流工具类 java
2019-1-7
-
Redis常用指令 java
2019-1-8
-
JSON工具类 java
2019-1-12
-
java反射实现的excel数据导出 java
2019-1-7
-
maven设置 java
2019-1-12
-
图片处理工具类 java
2019-1-7
-
Spring 集成 RabbitMQ java
2019-1-8
-
Java获取当前系统信息 java
2019-1-12