我有以下字串
11-abzw9rk
這里前 2 總是數字,然后是 -。
我如何驗證前 2 個總是包含 - 的數字。
當然可以使用,.contains()但有沒有更好的方法來驗證數字?
uj5u.com熱心網友回復:
這是一個簡單的版本,它使用String.charAt()和Character.isDigit()
String str = "11-abzw9rk";
//How to check 3rd is dash
if(str.charAt(2) == '-') {
System.out.println("Yes, 3rd character is dash");
}
//and first 2 are numbers?
if(Character.isDigit(str.charAt(0)) && Character.isDigit(str.charAt(1))) {
System.out.println("Yes, first two are digits");
}
uj5u.com熱心網友回復:
我們可以使用charAt字串函式在一個 if 陳述句中檢查所有條件。例如 s 是您的字串,則條件如下:
if(Character.isDigit(s.charAt(0)) && Character.isDigit(s.charAt(1)) && s.charAt(2)=='-'){
System.out.println("Match found");}
else{
System.out.println("String doesn't match");
}
uj5u.com熱心網友回復:
使用正則運算式 ^\\d{2}-
^ 行首
\\d{2} 兩位數
- 短跑
.* 還要別的嗎
import java.util.regex.Matcher;
import java.util.regex.Pattern;
...
Pattern pattern = Pattern.compile("^\\d{2}-.*");
Matcher matcher = pattern.matcher("11-abzw9rk");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
uj5u.com熱心網友回復:
class Stringcheck{
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.print("Enter the string: ");
String str= sc.nextLine();
if(Character.isDigit(str.charAt(0)) && Character.isDigit(str.charAt(1)) &&
(str.charAt(2)=='-'){
System.out.println("Match found");
}
else{
System.out.println("String doesn't match");
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/334582.html
