Java方法類_IP合法性判斷

Java方法類在Java中扮演的角色是重要的,例如String類的方法,就相當自帶的編寫的類,直接調用即可。大大省掉很多開發時間和代碼量,學會利用好方法類是需要不斷學習方法的,不斷認識新的對編程問題有用的方法,不斷對方法進行調用。

問題:判斷IP的合法性。(要求大部分用String,其實還是可以利用正則來進行判斷)

a)統計IP中點的個數。

b)截取每段IP部分的字符串。

c)截取每段的字符并且轉整判斷。

d)對整個IP進行判斷是否正確。

代碼階段:

1)首先利用Scanner進行輸入字符串

2)有點字符串和空字符串的相減


繼續加入連續點的判斷:


3)利用正則進行判斷字符兩端是否為點外的數字


4)當點數=3時進入轉整階段


5)確認每個part的字符都是符合IP的要求,便可以調試。

調試階段:

1)正確IP的輸入


2)錯誤IP的輸入


3) 紅色警告

不會出現,任意的字符串都可以進行判斷。

代碼如下,如果你們有什么更加好的改進請留言,謝謝。

import java.util.Scanner;

public class IP {

public static void main(String[] args) {

System.out.print("輸入一個IP地址:");? // 提示輸入IP地址

Scanner s = new Scanner(System.in);? ? // 從鍵盤讀入字符

String a = s.next();? ? ? ? // 將讀入后的字符轉成字符串

String z = a.replace(".", "");? // 用空字符替代點

int x = a.length() - z.length();? // 點的個數

int t =a.indexOf("..");

if(t<0)//判斷連續點

{

boolean y = z.matches("[0-9]+"); // 判斷除點外的字符是不是數字

if (!y || !Character.isDigit(a.charAt(0))

|| !Character.isDigit(a.charAt(a.length() - 1))) {

System.out.println("ERROR"); // 判斷除點外,第一位和最后一位字符是不是數字

}

else if (x == 3) // 判斷點的個數

{

int b = a.indexOf('.'); // 第一個點的位置

String c = a.substring(0, a.indexOf('.'));// 截取第一個數

int i = Integer.parseInt(c); // 第一個數

String d = a.substring(b + 1); // 截取第一個點后面的數

int e = d.indexOf('.'); // 第二個點的位置

String f = d.substring(0, e); // 截取第二個數

int j = Integer.parseInt(f); // 第二個數

String g = d.substring(e + 1); // 截取第二個點后面的數

int h = g.indexOf('.'); // 第三個點的位置

String l = g.substring(0, h); // 截取第三個數

int k = Integer.parseInt(l); // 第三個數

String m = g.substring(h + 1); // 截取第三個點后面的數

int n = Integer.parseInt(m); // 第四個數

if((i>0&&i <= 255)&& (j>0&&j <= 255)&& (k>=0&&k <= 255) && (n>=0&&n <= 255))

System.out.println("OK");

else

System.out.println("ERROR");

} else

System.out.println("ERROR");

}

else

System.out.println("ERROR");

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,740評論 18 399
  • 一、 1、請用Java寫一個冒泡排序方法 【參考答案】 public static void Bubble(int...
    獨云閱讀 1,410評論 0 6
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,766評論 0 33
  • java中String的常用方法 1、length()字符串的長度 例:char chars[]={'a','b'...
    赤赤有名閱讀 2,094評論 0 10
  • 用完早餐,收拾鍋碗時,不知怎么腦海里就想,我有一種與生俱來的愛好—閑暇時,特別喜歡看天上飄蕩的白云。 常常驚嘆云朵...
    龍寶青青閱讀 289評論 2 9