廢話不多說,直接上題目,需要依據下面的要求從檔案中讀入資訊,構造航班計畫項集合,若有不符合的輸入,直接丟擲異常即可
首先,題目給人感覺是非常複雜的,讀入一共有十三行,一次性判斷恐怕正規表示式會過於複雜,且可讀性差。
所以我的想法是先將資料讀進來,大體格式正確即可,
正規表示式如下:
pattern pattern = pattern.compile(「flight:(.?),(.?)\\}」);
利用捕獲組捕獲資訊,然後再對這些資訊進行更加細緻的判斷:
下為判斷日期和航班名的判斷
下為對出發時間和抵達時間的判斷
下為對飛機各屬性的判斷:
下位對航班名及時間和地點的匹配問題的判斷:
for
(flightentry i:fields)
elseif(
!i.gettimeslot()
.get(0
).getstarttime()
.subsequence(11
,16).
equals
(starttime.
subsequence(11
,16))
)elseif(
!i.gettimeslot()
.get(0
).getendtime()
.subsequence(11
,16).
equals
(endtime.
subsequence(11
,16))
)elseif(
!i.getlocations()
.get(0
).getname()
.equals
(startlocation)
)elseif(
!i.getlocations()
.get(1
).getname()
.equals
(endlocation))}
}
下位對相同飛機名但屬性變化的錯誤的判斷:
for
(flightentry i:fields)
}}
綜上判斷結束,然後再利用讀取到的資訊創造計畫項,最後形成乙個計畫項集合然後返回。 正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式應用
d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...
正規表示式(應用)
在此頁面寫正規表示式,可以提供參考,和進行校驗 應用於前端 匹配任意長度的大小寫字母與數字 a za z0 9 匹配任意長度且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字與漢字 a za z0...