如何检查第3是破折号和前2是数字?



我有下面的字符串

11-abzw9rk

前面的2总是数字后面的是-

如何验证前2位总是包含-的数字

当然可以使用.contains(),但是否有更好的方法来验证数字?

这里是一个使用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");
}

我们可以使用字符串的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");
}

使用regex^\d{2}-

^行首

\d{2}两位

-横线

.*else

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");
}
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");
}          
}  
}  

相关内容