国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

表示數值的字符串

2019-11-08 03:07:44
字體:
來源:轉載
供稿:網友

題目描述

請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示數值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。

算法解析: 表示數值的字符串通常遵循以下的模式:

[sign]intergral-digits[.[fractional-digits]][e|E[sign]exponential-digits]

數值前邊可能有符號位,所以我們可以分部分匹配,首先匹配符號位,接著繼續向后匹配。

代碼如下:

public boolean isNumeric(char[] str) { if (str == null || str.length <= 0){ return false; } int[] temp = new int[1]; if (str[temp[0]] == '+' || str[temp[0]] == '-'){ ++ temp[0]; } if (temp[0] == str.length){ return false; } boolean numberic = true; scanNumber(str, temp); if (temp[0] != str.length){ if (str[temp[0]] == '.'){ ++ temp[0]; scanNumber(str, temp); if (temp[0] == str.length){ return false; } if (str[temp[0]] == 'e' || str[temp[0]] == 'E'){ numberic = isExponential(str, temp); } }else if (str[temp[0]] == 'e' || str[temp[0]] == 'E'){ numberic = isExponential(str, temp); }else{ numberic = false; } } return numberic && str.length == temp[0]; } PRivate boolean isExponential(char[] str, int[] temp) { if (str[temp[0]] != 'e' && str[temp[0]] != 'E'){ return false; } ++ temp[0]; if (temp[0] == str.length){ return false; } if (str[temp[0]] == '+' || str[temp[0]] == '-'){ ++ temp[0]; } if (temp[0] == str.length){ return false; } scanNumber(str, temp); return (temp[0] == str.length) ? true : false; } public void scanNumber(char [] chars, int[] temp){ while (temp[0] < chars.length && chars[temp[0]] >= '0' && chars[temp[0]] <= '9'){ temp[0] ++; } }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莆田市| 涿州市| 大理市| 德庆县| 高尔夫| 海晏县| 东明县| 枞阳县| 新巴尔虎右旗| 建平县| 安溪县| 小金县| 宁强县| 宜黄县| 滁州市| 德阳市| 绍兴县| 石河子市| 丹凤县| 内丘县| 松阳县| 射阳县| 津市市| 德惠市| 大厂| 观塘区| 普安县| 顺义区| 抚远县| 建德市| 常州市| 鄄城县| 民丰县| 介休市| 新平| 陆良县| 蓬溪县| 桑植县| 凤凰县| 石林| 拉萨市|