一個C++的同事讓我幫寫個Regex:驗證某個值是否為數字。我就簡單用Java代碼寫了一個。
public class Test {public static boolean checkNumber(double value){String str = String.valueOf(value);String regex = "^(-?[1-9]\\d*\\.?\\d*)|(-?0\\.\\d*[1-9])|(-?[0])|(-?[0]\\.\\d*)$";return str.matches(regex);}public static boolean checkNumber(int value){String str = String.valueOf(value);String regex = "^(-?[1-9]\\d*\\.?\\d*)|(-?0\\.\\d*[1-9])|(-?[0])|(-?[0]\\.\\d*)$";return str.matches(regex);}public static boolean checkNumber(String value){String regex = "^(-?[1-9]\\d*\\.?\\d*)|(-?0\\.\\d*[1-9])|(-?[0])|(-?[0]\\.\\d*)$";return value.matches(regex);}public static void main(String[] args) {System.out.println(checkNumber(0));// trueSystem.out.println(checkNumber(-0));// trueSystem.out.println(checkNumber(23));// trueSystem.out.println(checkNumber(-23));// trueSystem.out.println(checkNumber(0.0));// trueSystem.out.println(checkNumber(-0.0));// trueSystem.out.println(checkNumber(23.01));// trueSystem.out.println(checkNumber(-23.01));// trueSystem.out.println(checkNumber("-10.01.01"));// falseSystem.out.println(checkNumber("A110"));// false}}
寫的如果有錯誤的,請指教,有更好的,更請賜教啊,謝謝。