private static final String NAME_REGEX = "^[a-zA-Z] (([', . -][a-zA-Z ])?[a-zA-Z]*)*$";
private static final Pattern NAME_PATTERN = Pattern. 編譯(NAME_REGEX)。
我如何在try n catch塊中使用下面的陳述句來檢查名字是否有效,并在有錯誤時顯示錯誤味精?
NAME_PATTERN.matcher(name).matches()
以及如何使用PatternSyntaxException
uj5u.com熱心網友回復:
你不需要一個try...catch來檢查名字是否有效。你寫的那一行。NAME_PATTERN.matcher(name).matches()回傳一個布林值,如果匹配則為真,不匹配則為假。所以你可以在一個if...else塊中檢查這個布林值:
boolean matches = NAME_PATTERN.matcher(name).match()。
if (matches) {
System.out.println("valid")。
} else {
System.out.println("invalid")。
PatternSyntaxException類代表了一個未檢查的例外,它被拋出以表示正則運算式模式中的語法錯誤。這意味著如果你的 NAME_REGEX 重詞有語法錯誤,那么當你呼叫 Pattern.compile(NAME_REGEX) 時,這個例外將被拋出。
你可以try...catch它,比如:
public static void main(String[] args) {
try {
final String NAME_REGEX = "^[a-zA-Z] ((',. -][a-zA-Z ])?[a-zA-Z]*)*$";
final Pattern NAME_PATTERN = Pattern.compile(NAME_REGEX)。
String name = "sdasdada"; //名稱輸入
boolean matches = NAME_PATTERN.matcher(name).matches()。
if (matches) {
System.out.println("valid")。
} else {
System.out.println("invalid")。
}
} catch(PatternSyntaxException e){
System.out.println("PatternSyntaxException: "/span>)。
System.out.println("描述。" e.getDescription())。
System.out.println("索引。" e.getIndex())。
System.out.println("Message: " e.getMessage())。
System.out.println("模式。" e.getPattern())。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/323607.html
標籤:
上一篇:VB.NET如果一個字串的最后一個字母/符號是一個特定的符號
下一篇:從數字字串中只提取一些數字
