日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java判斷字符串是不是數(shù)字過程解析

瀏覽:33日期:2022-08-25 14:01:18

前言

數(shù)字是計算機科學的根本,那么java中數(shù)字是怎樣來表示呢?規(guī)則又是怎樣呢?今天我們來探討一下這個話題。數(shù)字在某些領(lǐng)域經(jīng)常用字符串來進行表示和傳遞。那么我們可以從判斷java中一個字符串是否是數(shù)字來獲取一些有用的信息。

空字符和null

首先我們可以很清晰的知道空字符''和null 肯定不是數(shù)字。其實我們寫其他邏輯一樣。把一些最極端最容易辨別處理的邏輯判斷直接要優(yōu)先進行處理。這是一個小的竅門。

toCharArray

排除了先前情況的字符串可以通過toCharArray() 方法轉(zhuǎn)換為char數(shù)組。而Character.isDigit(int) 很容易判斷該char元素是否是數(shù)字(不要問char為什么是int!)。那么該方法會不會奏效呢?我們來操作一波各種情況:

public class Main { public static void main(String[] args) { // false System.out.println(''' 是不是數(shù)字:'+isNumeric('')); // false System.out.println('' ' 是不是數(shù)字:'+isNumeric(' ')); // false System.out.println('null 是不是數(shù)字:'+isNumeric(null)); // false System.out.println('1,200 是不是數(shù)字:'+isNumeric('1,200')); // true System.out.println('1 是不是數(shù)字:'+isNumeric('1')); // 預(yù)期是負數(shù) 卻為 false System.out.println('-1 是不是數(shù)字:'+isNumeric('-1')); // true System.out.println('200 是不是數(shù)字:'+isNumeric('200')); // 預(yù)期是保留兩位的浮點數(shù) 卻為false System.out.println('3000.00 是不是數(shù)字:'+isNumeric('3000.00')); // 二進制 System.out.println('0b11001 是不是數(shù)字:'+isNumeric('0b11001')); // 八進制 true System.out.println('012 是不是數(shù)字:'+isNumeric('012')); // 十六進制 false System.out.println('0x12 是不是數(shù)字:'+isNumeric('0x12')); // A-F 代表十六進制中的 10-15 false System.out.println('0xAF 是不是數(shù)字:'+isNumeric('0xAF')); // double false System.out.println('12.12d 是不是數(shù)字:'+isNumeric('12.12d')); // double 科學計數(shù)法 false System.out.println('12E4 是不是數(shù)字:'+isNumeric('12E4')); // float false System.out.println('12.123f 是不是數(shù)字:'+isNumeric('12.123f')); // 分隔符 jdk1.7 false System.out.println('1_000_000 是不是數(shù)字:'+isNumeric('1_000_000')); } public static boolean isNumeric(final String str) { // null or empty if (str == null || str.length() == 0) { return false; } return str.chars().allMatch(Character::isDigit); }}

從上面可以看出,中規(guī)中矩的十進制正整數(shù)沒有太多的問題。一旦是浮點數(shù),小數(shù),負數(shù),二進制,十六進制,科學計數(shù)法,分隔符其中一種的情況下,這個方法就不太好用了。突然想到包裝類還有一些方法可用。

parse轉(zhuǎn)換

數(shù)字的包裝類都有對應(yīng)的parse方法 。如果字符串不符合對應(yīng)數(shù)字類型的規(guī)則將拋出NumberFormatException 異常。所以我們這里改動一下我們的判斷方法:

public static boolean isNumeric(final String str) { // null or empty if (str == null || str.length() == 0) { return false; } try { Integer.parseInt(str); return true; } catch (NumberFormatException e) { try {Double.parseDouble(str);return true; } catch (NumberFormatException ex) {try { Float.parseFloat(str); return true;} catch (NumberFormatException exx) { return false;} } } }

再執(zhí)行一下,得出如下結(jié)果:

'' 是不是數(shù)字:false' ' 是不是數(shù)字:falsenull 是不是數(shù)字:false1,200 是不是數(shù)字:false1 是不是數(shù)字:true-1 是不是數(shù)字:true200 是不是數(shù)字:true3000.00 是不是數(shù)字:true0b11001 是不是數(shù)字:false012 是不是數(shù)字:true0x12 是不是數(shù)字:false0xAF 是不是數(shù)字:false12.12d 是不是數(shù)字:true12E4 是不是數(shù)字:true12.123f 是不是數(shù)字:true1_000_000 是不是數(shù)字:false

從以上的第五行開始,數(shù)字的表示都是java支持的。從執(zhí)行結(jié)果來看除了二進制,十六進制,分隔符其它都是符合預(yù)期的。雖然該方式不夠完美,但是我們也能從中學到對應(yīng)parse方法的一些規(guī)則。這才是重點。

第三方庫

也就是說jdk提供的api并沒有銀彈。那么是否有第三方庫來檢測呢?我們使用了commons-lang3庫(3.9版本)中提供的NumberUtils工具類來進行處理,我對其isParsable 、isDigits、isCreatable 方法進行分別測試,發(fā)現(xiàn)isCreatable 方法效果最好,只有分隔符沒有達到我們的預(yù)期。如果你不考慮這種情況應(yīng)該是isCreatable 基本能滿足需要的。如果你知道更好的類庫可以通過我的公眾號: Felordcn 告訴我。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品二区亚洲w码| 你懂的国产精品| 青草国产精品| 日韩在线短视频| 午夜性色一区二区三区免费视频| 国产精品99久久精品| 亚洲影视一区| 日韩精品电影| 久久国产精品色av免费看| 色爱综合av| 欧美精品观看| 91久久亚洲| 国产aⅴ精品一区二区四区| 免费观看在线色综合| 国产欧美一区二区三区精品酒店| 久久高清国产| 亚洲最新无码中文字幕久久| 日韩国产欧美一区二区三区| 91精品国产乱码久久久久久久| 欧美精品国产| 亚洲天堂免费| 在线日韩视频| 国产成人免费视频网站视频社区| 中文字幕亚洲影视| 999国产精品| 精品国产亚洲一区二区三区在线| 亚洲区欧美区| 婷婷久久一区| 国产精品成人一区二区不卡| 日韩精品免费一区二区在线观看 | 精品精品久久| 中文国产一区| 精品久久久久中文字幕小说| 亚洲在线免费| 激情不卡一区二区三区视频在线| 一区二区自拍| 国产精品成人一区二区不卡| 一区二区91| 99精品综合| 亚洲激情另类| 久久女人天堂| 国产精品网址| 亚欧洲精品视频在线观看| 久久福利精品| 亚洲作爱视频| 欧美在线亚洲综合一区| 日韩精品一区二区三区免费观影| 福利视频一区| 久久精品网址| 麻豆成人av在线| 国产日韩欧美中文在线| 日韩精选在线| 亚洲精品伊人| 亚洲精品裸体| 天堂久久一区| 亚洲精品极品| 亚洲精品四区| av亚洲在线观看| 国户精品久久久久久久久久久不卡 | 粉嫩av一区二区三区四区五区 | 国产图片一区| 免费国产亚洲视频| 日韩伦理在线一区| 国产精品一区2区3区| 免费在线观看日韩欧美| 久久五月天小说| 日本一区二区高清不卡| 国产午夜精品一区在线观看| 亚洲人成亚洲精品| 亚洲欧美日本日韩| 国产高清一区二区| 人人精品亚洲| av在线日韩| 97在线精品| 国产一区日韩| 麻豆国产91在线播放| 欧美日韩调教| 四虎成人精品一区二区免费网站| 国产videos久久| 日本aⅴ亚洲精品中文乱码| 日韩精品成人| 日韩精品亚洲专区| 国产精品videossex| 免费一级欧美在线观看视频| 精品一区二区三区中文字幕 | 国产精品亚洲成在人线| 日本午夜精品久久久久| 日本不卡的三区四区五区| 蜜臀久久99精品久久久画质超高清| 国产精品老牛| 香蕉国产精品| jiujiure精品视频播放| 黄色欧美日韩| 99日韩精品| 天堂成人免费av电影一区| 免费日本视频一区| 亚洲视频综合| jizzjizz中国精品麻豆| 欧美特黄一级大片| 日韩精品一区第一页| 欧美一区不卡| 91视频一区| 国产视频欧美| 日韩国产91| 国产不卡精品在线| 欧美午夜精彩| 日本欧美在线| a日韩av网址| 视频一区二区三区在线| 国产精品一区二区三区av| 国产一区二区精品久| 欧美/亚洲一区| 最新国产精品视频| 国产黄色一区| 99热精品久久| 日韩美女国产精品| 99精品电影| 国产一区二区三区国产精品| 青青久久av| 欧美日韩国产一区二区三区不卡| 亚洲国产不卡| 亚洲久久一区| 麻豆视频观看网址久久| 久久久久免费| 欧美日韩国产一区二区三区不卡| 石原莉奈在线亚洲三区| 欧美有码在线| 久久久久久自在自线| 亚洲成人精选| 日本不卡视频一二三区| 美女久久精品| 91精品国产乱码久久久久久久| 欧美日韩四区| 青青青国产精品| 成人精品动漫一区二区三区| 激情国产在线| 国产亚洲高清视频| 国产亚洲电影| 香蕉成人av| 亚洲日本欧美| 成人国产综合| 国产午夜精品一区二区三区欧美| 69精品国产久热在线观看| 97欧美在线视频| 亚洲日本国产| 蜜臀国产一区| 亚洲久久视频| 国产精品亚洲一区二区三区在线观看| 只有精品亚洲| 韩国一区二区三区视频| 国产一区视频在线观看免费| 日韩极品在线观看| 婷婷综合六月| 91精品在线免费视频| 国产99久久| 国产亚洲精品精品国产亚洲综合| 国产在线不卡| 国产精品mm| 国产精品普通话对白| 欧美国产另类| 麻豆成人在线| av日韩中文| 婷婷久久免费视频| 日韩精品水蜜桃| 国产精品一线| 五月婷婷亚洲| 麻豆国产精品| 亚洲精品乱码久久久久久蜜桃麻豆| 中文字幕成在线观看| 日本强好片久久久久久aaa| 久久精品国产www456c0m| 国产精品乱战久久久| 欧美综合二区| 香蕉成人av| 欧美国产极品| 日日夜夜免费精品视频| 欧美69视频| 高清久久精品| 国产日韩一区二区三区在线播放| 亚洲一区二区三区免费在线观看| 欧美国产专区| 日本一区免费网站| 亚洲激情另类| 日韩啪啪电影网| 69堂免费精品视频在线播放| 红桃视频亚洲| 欧美aa一级| 精品深夜福利视频| 日韩av电影一区| 蜜臀av一区二区三区| 成人羞羞在线观看网站| 久久精品国产网站| 日韩av网站免费在线| 久久不射网站| 欧美精选一区二区三区| 国产精品蜜芽在线观看| 国产欧美激情| 亚洲另类av| 在线亚洲自拍| 在线日韩电影|