package com.abuge;
import org.junit.Test;
public class Solution
{
public boolean isNumber(String s)
{
String str = s.trim();
if(str.isEmpty())
{
return false;
}
//正则表达式的运用:
/*第一位:+-(一次或者一次也没有)
* 第二位开始:可以使若干数字加一个点或者一个点加若干数字(数字出现一次或多次)
* \d:表示[0-9],而+表示一个或多个
* ?:一次或一次也没有
* 指数部分:出现一次或者不出现
*/
String regex = "[+-]?(\\d+\\.?|\\.\\d+)\\d*(e[+-]?\\d+)?";
if(str.matches(regex))
{
return true;
}else
{
return false;
}
}
@Test
public void test()
{
System.out.println(isNumber("0"));
System.out.println(isNumber(" 0.1 "));
System.out.println(isNumber("abc"));
System.out.println(isNumber("1 a"));
System.out.println(isNumber("2e10"));
System.out.println(isNumber(".1"));
System.out.println(isNumber("3."));
System.out.println(isNumber("."));
System.out.println(isNumber(".."));
System.out.println(isNumber("-1."));
System.out.println(isNumber("+.8"));
System.out.println(isNumber("-."));
System.out.println(isNumber(".e1"));
System.out.println(isNumber("1e."));
System.out.println(isNumber("2e0"));
System.out.println(isNumber("46.e3"));
System.out.println(isNumber("-e58"));
System.out.println(isNumber("005047e+6"));
System.out.println(isNumber("6+1"));
System.out.println(isNumber("+53"));
}
}
原文链接:https://www.f2er.com/regex/361423.html