溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何判斷java字符串是否是IP地址

發(fā)布時(shí)間:2020-08-07 09:23:40 來(lái)源:億速云 閱讀:176 作者:Leah 欄目:編程語(yǔ)言

如何判斷java字符串是否是IP地址?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

要實(shí)現(xiàn)該算法我們首先應(yīng)該知道,IP地址應(yīng)該依據(jù)哪些條件:

判斷原則:

  • 判斷該字符長(zhǎng)度是否是7-15位之間(0.0.0.0-255.255.255.255.255)

  • 是否能以小數(shù)點(diǎn)分成四段

  • 每段是否都是數(shù)字

  • 每段數(shù)字是否都在0-255之間

只有以上四個(gè)條件都滿足了,才是IP的正確格式。

實(shí)現(xiàn)該算法有兩種比較簡(jiǎn)單的方法,一種是常規(guī)判斷,另一種是利用正則表達(dá)式進(jìn)行判斷,下面以函數(shù)的形式實(shí)現(xiàn)這兩種方法,可以直接復(fù)制函數(shù)使用,傳入的參數(shù)是待判斷的字符串,返回的是布爾變量。

常規(guī)方法判斷

//判斷字符是否是IP
public boolean isCorrectIp(String ipString) {
        //1、判斷是否是7-15位之間(0.0.0.0-255.255.255.255.255)
	if (ipString.length()<7||ipString.length()>15) {
		return false;
	}
	//2、判斷是否能以小數(shù)點(diǎn)分成四段
	String[] ipArray = ipString.split("\\.");		
	if (ipArray.length != 4) {
		return false;
	}
	for (int i = 0; i < ipArray.length; i++) {
		//3、判斷每段是否都是數(shù)字
		try {
			int number = Integer.parseInt(ipArray[i]);
			//4.判斷每段數(shù)字是否都在0-255之間
			if (number <0||number>255) {
        			return false;
			}
		} catch (Exception e) {
			return false;
		}
	}		
	return true;
	}

正則表達(dá)式方法判斷

//利用正則表達(dá)式判斷字符是否為IP
public boolean isCorrectIp2(String ipString) {
	String ipRegex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";	//IP地址的正則表達(dá)式
	//如果前三項(xiàng)判斷都滿足,就判斷每段數(shù)字是否都位于0-255之間
	if (ipString.matches(ipRegex)) {
		String[] ipArray = ipString.split("\\.");
		for (int i = 0; i < ipArray.length; i++) {
			int number = Integer.parseInt(ipArray[i]);
			//4.判斷每段數(shù)字是否都在0-255之間
			if (number <0||number>255) {
				return false;
			}
		}
		return true;
	}
	else {
		return false;	//如果與正則表達(dá)式不匹配,則返回false
	}	
}

測(cè)試結(jié)果:

如何判斷java字符串是否是IP地址

看完上述內(nèi)容,你們掌握如何判斷java字符串是否是IP地址的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI