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

您的位置:首頁技術文章
文章詳情頁

Java判斷字符串是否為IP地址的方法

瀏覽:29日期:2022-08-27 11:43:27

Java 判斷字符串是否為IP地址,供大家參考,具體內容如下

1、代碼

主要就是這么幾個條件

非空 長度符合 0.0.0.0 - 255.255.255.255 包含分隔符 且 個數正確 四個全部是數字,且都在合理的范圍內

/** * 判斷某個字符串是否是一個 IP 地址 * * @param str 字符串 */ public static boolean isIpStr(String str) { // 非空 // boolean notBlank = StringUtils.isNotBlank(str); // 長度符合 0.0.0.0 - 255.255.255.255 // boolean length = CommonUtils.isNumberBetween(str.length(),7,15); if (StringUtils.isNotBlank(str) && CommonUtils.isNumberBetween(str.length(), 7, 15)) { String regex = '.'; // 包含分隔符 且 個數正確 if (str.contains(regex) && str.split(regex).length == 4) { boolean legalNumber = true; // 四個全部是數字,且都在合理的范圍內 for (String obj : Lists.newArrayList(str.split(regex))) { if (NumberUtils.isDigit(obj)) { Integer value = Integer.parseInt(obj); legalNumber = CommonUtils.isNumberBetween(value, 0, 255); } else { // 任意一個不是數字,不合法 legalNumber = false; break; } } return legalNumber; } } return false;}

2、CommonUtils 工具類

package cn.zjcs.common.util;import cn.hutool.core.util.ReUtil;import lombok.AccessLevel;import lombok.Getter;import lombok.NoArgsConstructor;import java.math.BigDecimal;import java.math.RoundingMode;/** * @author Created by 譚健 on 2019/6/11. 星期二. 15:20. * © All Rights Reserved. */@NoArgsConstructor(access = AccessLevel.PRIVATE)public class CommonUtils { /** * 是否為 null * * @param o * @return null返回 true */ public static boolean isNull(Object o) { return o == null; } /** * 是否不為 null * * @param o * @return 不為 null 返回 true */ public static boolean isNotNull(Object o) { return !isNull(o); } /** * 是否是0 , * * @param bigDecimal * @return 0 返回true */ public static boolean isZeroDecimal(BigDecimal bigDecimal) { return isNotNull(bigDecimal) && bigDecimal.compareTo(BigDecimal.ZERO) == 0; } /** * 是否不是 0 * * @param bigDecimal * @return 不是0 返回true */ public static boolean isNotZeroDecimal(BigDecimal bigDecimal) { return !isZeroDecimal(bigDecimal); } /** * 是否是 1 * * @param bigDecimal * @return 是 1 返回true */ public static boolean isOneDecimal(BigDecimal bigDecimal) { return isNotNull(bigDecimal) && bigDecimal.compareTo(BigDecimal.ONE) == 0; } /** * 是否不是 1 * * @param bigDecimal * @return 不是 1 返回true */ public static boolean isNotOneDecimal(BigDecimal bigDecimal) { return bigDecimal.compareTo(BigDecimal.ONE) != 0; } /** * 是否是 0 long * * @param l * @return 是 0 long 返回 true */ public static boolean isZeroLong(Long l) { return l != null && l.equals(0L); } /** * 是否不是 0 long * * @param l * @return 不是 0 long 返回 true */ public static boolean isNotZeroLong(Long l) { return !isZeroLong(l); } /** * 是否是 0 int * * @param l * @return 是 0 int 返回 true */ public static boolean isZeroInt(Integer l) { return l != null && l.equals(0); } /** * 是否不是 0 int * * @param l * @return 不是 0 int 返回 true */ public static boolean isNotZeroInt(Integer l) { return !isZeroInt(l); } /** * 兩個 decimal 是否相等 * * @param i * @param j * @return 相等返回 true */ public static boolean isSameDecimal(BigDecimal i, BigDecimal j) { return i.compareTo(j) == 0; } /** * 第一個 decimal 是否大于 第二個 decimal * * @param i * @param j * @return 大于 返回true */ public static boolean isDecimalGt(BigDecimal i, BigDecimal j) { return i.compareTo(j) > 0; } /** * 第一個 decimal 是否小于 第二個 decimal * * @param i * @param j * @return 小于 返回true */ public static boolean isDecimalLt(BigDecimal i, BigDecimal j) { return i.compareTo(j) < 0; } /** * 特殊字符串處理 * * @param character * @return */ public static String replaceSpecialCharacter(String character) { String regEx = '[`~!@#$%^&*()+=|{}’:;’,[].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]'; return ReUtil.replaceAll(character, regEx, ''); } /** * 數據分比切割 * <p> * 比如 p 為 2,要做千分切割,則 h 值為 '1000.00' * 得到值為 0.002 * * @param p 輸入值 * @param h 切割值 * @return 切割后的值 */ public static BigDecimal percentFormat(Integer p, String h) { return new BigDecimal(String.valueOf(p)).divide(new BigDecimal(h), 4, RoundingMode.HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP); } public static boolean orEq(Object... o) { if (o.length < 2) { throw new NullPointerException('長度不足'); } Object o1 = o[0]; for (int i = 1; i < o.length - 1; i++) { if (o1.equals(o[i])) { return true; } } return false; } /** * 包含邊界值 * * @param number 檢查值 * @param min 最小 * @param max 最大 */ public static boolean isNumberBetween(Number number, Number min, Number max) { return number.longValue() >= min.longValue() && number.longValue() <= max.longValue(); } /** * 標準數學計算 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public static class Math { /** * 精確的表示分數的數學計算,因為使用double 等會丟失精度 */ @SuppressWarnings('rawtypes') @Getter public static class Fraction extends Number implements Comparable { private static final long serialVersionUID = 2330398718018182597L; /** * 定義分子 */ private long numerator = 0; /** * 定義分母 */ private long denominator = 1; public Fraction() { this(0, 1); } public Fraction(long numerator, long denominator) { long gcd = gcd(numerator, denominator); this.numerator = ((denominator > 0) ? 1 : -1) * numerator / gcd; this.denominator = java.lang.Math.abs(denominator) / gcd; } /** * 求最大公約數 */ private long gcd(long f, long s) { long fAbs = java.lang.Math.abs(f); long sAbs = java.lang.Math.abs(s); // 學術名稱 Gcd int _Gcd = 1; // 歐幾里德算法 for (int i = 1; i <= fAbs && i <= sAbs; i++) { if (fAbs % i == 0 && sAbs % i == 0) { _Gcd = i; } } return _Gcd; } /** * 分數的加法 * */ public Fraction add(Fraction secondRational) { long n = numerator * secondRational.getDenominator() + denominator * secondRational.getNumerator(); long d = denominator * secondRational.getDenominator(); return new Fraction(n, d); } /** * 分數的減法 * */ public Fraction subtract(Fraction secondRational) { long n = numerator * secondRational.getDenominator() - denominator * secondRational.getNumerator(); long d = denominator * secondRational.getDenominator(); return new Fraction(n, d); } /** * 分數乘法 * */ public Fraction mulitiply(Fraction secondRational) { long n = numerator * secondRational.getNumerator(); long d = denominator * secondRational.getDenominator(); return new Fraction(n, d); } /** * 分數除法 * */ public Fraction divide(Fraction secondRational) { long n = numerator * secondRational.getDenominator(); long d = denominator * secondRational.numerator; return new Fraction(n, d); } @Override public String toString() { if (denominator == 1) { return numerator + ''; } else { return numerator + '/' + denominator; } } @SuppressWarnings('all') @Override public boolean equals(Object parm1) { return (this.subtract((Fraction) (parm1))).getNumerator() == 0; } @Override public int compareTo(Object o) { if ((this.subtract((Fraction) o)).getNumerator() > 0) { return 1; } else if ((this.subtract((Fraction) o)).getNumerator() > 0) { return -1; } else { return 0; } } @Override public double doubleValue() { return numerator * 1.0 / denominator; } @Override public float floatValue() { return (float) doubleValue(); } @Override public int intValue() { return (int) doubleValue(); } @Override public long longValue() { return (long) doubleValue(); } } /** * @param dividend 被除數 * @param divisor 除數 * @param accuracy 精度 */ public static BigDecimal divide(BigDecimal dividend, BigDecimal divisor, int accuracy) { // 0 除以任何數 = 無窮大,任何數除以 0 無法除,都會拋出錯誤 if (isZeroDecimal(divisor) || isZeroDecimal(dividend)) { return BigDecimal.ZERO; } return dividend.divide(divisor, 16, RoundingMode.HALF_UP).setScale(accuracy, RoundingMode.HALF_UP); } /** * @param f . * @param s . * @param accuracy 精度 */ public static BigDecimal multiply(BigDecimal f, BigDecimal s, int accuracy) { // 0 * 任何數 = 0 if (isZeroDecimal(f) || isZeroDecimal(s)) { return BigDecimal.ZERO; } return f.multiply(s).setScale(accuracy, RoundingMode.HALF_UP); } /** * 開多次方根 * */ public static BigDecimal pow(BigDecimal f, BigDecimal s) { // 防止出現 Infinity 的情況 if (isZeroDecimal(f) && isDecimalLt(s, BigDecimal.ZERO)) { return BigDecimal.ZERO; } return new BigDecimal(String.valueOf(java.lang.Math.pow(f.doubleValue(), s.doubleValue()))); } /** * 獲取分數值 * */ public static BigDecimal fraction(Fraction f) { long denominator = f.getDenominator(); long numerator = f.getNumerator(); return divide(new BigDecimal(String.valueOf(numerator)), new BigDecimal(String.valueOf(denominator)), 16); } }}

3、NumberUtils 工具類

package cn.zjcs.common.util;import lombok.AccessLevel;import lombok.NoArgsConstructor;import java.math.BigDecimal;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author .. */@NoArgsConstructor(access = AccessLevel.PRIVATE)public class NumberUtils { private static final Pattern DIGIT_PATTERN = Pattern.compile('[0-9]*'); /** * 判斷 某個 decimal 是否等于 0 * * @param decimal BigDecimal 數字 * @return 等于0 返回 true */ public static boolean isZeroDecimal(BigDecimal decimal) { return decimal == null || decimal.compareTo(BigDecimal.ZERO) == 0; } /** * 判斷 某個 decimal 是否不等于 0 * * @param decimal BigDecimal 數字 * @return 不等于0 返回 true */ public static boolean isNotZeroDecimal(BigDecimal decimal) { return decimal != null && decimal.compareTo(BigDecimal.ZERO) != 0; } /** * 判斷一個字符串是否是數字 * * @param var 字符串 * @return 是數字返回 true */ public static boolean isDigit(String var) { Matcher isNum = DIGIT_PATTERN.matcher(var); return isNum.matches(); } public static boolean isEmptyNumber(Number number) { return number == null || number.intValue() == 0 || number.longValue() == 0 || number.doubleValue() == 0.00 || number.byteValue() == 0 || number.floatValue() == 0.0 || number.shortValue() == 0; } public static boolean isNotEmptyNumber(Number number) { return !isEmptyNumber(number); } public static boolean isNotZeroLong(Long something) { if (something == null) { return false; } return !something.equals(0L); }}

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

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆极品一区二区三区| 国产亚洲在线| av在线资源| 日本免费一区二区视频| 最新中文字幕在线播放| 精品三级在线| 日韩av中文字幕一区二区 | 久久精品国语| 精品视频国产| 久草免费在线视频| 久久精品国产99国产| 日本91福利区| 蜜桃av一区二区| 国产精品777777在线播放| 久久久精品午夜少妇| 亚洲激情黄色| 国产探花一区| 午夜久久av | 久久精品国语| 麻豆视频一区| 国产精品一线天粉嫩av| 日韩精品一区二区三区免费视频| 国产粉嫩在线观看| 国产精品麻豆成人av电影艾秋| 国产精品久久久久av蜜臀| 日本不卡视频在线观看| 亚洲深夜福利在线观看| 亚洲色图国产| 久久99伊人| 日韩中文字幕不卡| 欧美一区自拍| 久久中文在线| 给我免费播放日韩视频| 欧美日韩一区二区综合| 国产字幕视频一区二区| 亚洲精品中文字幕乱码| 日本午夜精品久久久| 久久激情网站| 91精品蜜臀一区二区三区在线| 亚洲欧美久久| 日本欧美一区| 欧美综合社区国产| 亚洲深夜视频| 亚洲精品88| 老鸭窝毛片一区二区三区| 丝袜亚洲精品中文字幕一区| 先锋影音国产一区| 国产精品午夜一区二区三区| 欧美精品导航| 国产精品成人3p一区二区三区| 激情黄产视频在线免费观看| 在线观看精品| 日本综合字幕| 欧美综合二区| 91福利精品在线观看| 国产精品羞羞答答在线观看| 国产精品xxx在线观看| 日韩av自拍| 亚洲精品中文字幕乱码| 国产欧美三级| 欧美激情另类| 亚洲电影在线一区二区三区| 欧美视频久久| 精品捆绑调教一区二区三区 | 四虎4545www国产精品| 免费看av不卡| 欧美羞羞视频| 91成人福利| 亚洲黄色网址| 在线视频精品| 久久久久久久欧美精品| 性色一区二区| 国产日产精品_国产精品毛片| 老司机免费视频一区二区三区| 尤物在线精品| 国产精品一线天粉嫩av| 久久国产尿小便嘘嘘| 国产亚洲精品久久久久婷婷瑜伽| 人人草在线视频| 国产精品中文字幕制服诱惑| 国产精品毛片一区二区三区| 日韩av首页| 黑人精品一区| av免费不卡国产观看| 国产成人黄色| 国产精品激情| 欧美久久精品| 欧美激情日韩| 久久精品97| 久久婷婷激情| 精品丝袜在线| 999国产精品| 国产日韩一区二区三免费高清| 蜜桃久久精品一区二区| 午夜久久久久| 热三久草你在线| 亚洲性视频在线| 91精品亚洲| 欧美日韩亚洲一区三区| 在线看片福利| 亚洲综合婷婷| 久久久久国产| 国产精品欧美在线观看| 一级成人国产| 国产美女高潮在线观看| 天堂久久一区| 美女视频黄免费的久久| 日韩高清成人在线| 成人在线丰满少妇av| 亚洲乱码视频| 日韩高清中文字幕一区| 成人影视亚洲图片在线| 亚洲精品888| 国产一区二区三区日韩精品| 精品久久久亚洲| 美女久久久久久 | 亚洲国产一区二区三区在线播放 | 日韩高清不卡一区二区| 日韩免费久久| 夜夜嗨av一区二区三区网站四季av| 亚洲精品无吗| 日韩中文在线播放| 亚欧成人精品| 亚洲精品一区二区妖精| 亚洲精品观看| 免费成人在线影院| 欧美午夜精彩| 免费在线亚洲| 久久成人精品| 免费在线视频一区| 久久最新视频| 亚洲日韩中文字幕一区| 色综合视频一区二区三区日韩 | 成人美女视频| 麻豆精品在线观看| 国产欧美日韩精品高清二区综合区 | 日本不卡视频一二三区| 少妇精品在线| 欧美日韩日本国产亚洲在线| 先锋亚洲精品| 清纯唯美亚洲综合一区| 日韩亚洲一区在线| 性欧美长视频| 国产精品久久久免费| 国产乱码精品一区二区亚洲| 日本亚洲最大的色成网站www | 国产va在线视频| 精品中文在线| 精品国产一级| 久久久久国产精品一区二区| 夜夜嗨av一区二区三区网站四季av| 亚洲尤物在线| 日韩1区2区日韩1区2区| 嫩草伊人久久精品少妇av杨幂| 国产精品国产一区| 激情欧美丁香| 欧美日韩亚洲一区三区| 色婷婷狠狠五月综合天色拍| 久色成人在线| av中文字幕在线观看第一页| 日本vs亚洲vs韩国一区三区二区| 麻豆精品在线视频| 综合激情网站| 国产精品毛片一区二区在线看| 日韩精品一区第一页| 日韩久久精品网| 国产精品115| 免费黄网站欧美| 日韩午夜高潮| 欧美色图一区| 国产成人精品一区二区免费看京| 六月天综合网| 欧美日韩视频| 久久国产日本精品| 日韩不卡在线| 黄色欧美日韩| 国产一区二区三区国产精品| 黑森林国产精品av| 欧美经典一区| 国产精品一区免费在线| 婷婷激情图片久久| 麻豆精品蜜桃视频网站| 国产精品欧美大片| 日韩免费在线| 亚洲久草在线| 日韩av免费大片| 中文无码日韩欧| 国产aⅴ精品一区二区三区久久 | 亚洲不卡系列| 欧美日韩国产一区二区在线观看| 亚洲激精日韩激精欧美精品| 天堂av在线| 日韩在线欧美| 天堂中文在线播放| 国产v综合v| 国产日韩一区二区三区在线播放 | 丝袜美腿亚洲一区二区图片| 一区二区视频欧美| 最新亚洲激情| 久久国产三级|