JAVA编程题(String)
发布网友
发布时间:2022-05-21 22:52
我来回答
共2个回答
热心网友
时间:2023-11-17 20:54
package com.zzb.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public boolean isNum(int c) {
return 48 <= c && 57 >= c;
}
//通过比较ASCII码判断是否符合要求
public boolean test(String s) {
char[] ss = s.toCharArray();
if (ss.length != 11)
return false;
int i = 0;
for (int j = 0; j < 3; j++) {
if (!isNum(ss[i]))
return false;
i++;
}
if (ss[i] != '-')
return false;
i++;
for (int j = 0; j < 2; j++) {
if (!isNum(ss[i]))
return false;
i++;
}
if (ss[i] != '-')
return false;
i++;
for (int j = 0; j < 4; j++) {
if (!isNum(ss[i]))
return false;
i++;
}
return true;
}
//正则表达式法
public boolean test2(String s){
Pattern pat = Pattern.compile("[\\d]{3}-[\\d]{2}-[\\d]{4}");
Matcher mat = pat.matcher(s);
return mat.matches();
}
public static void main(String[] args) {
Test test = new Test();
String s = "111-11-1111";
System.out.println(test.test(s));
System.out.println(test.test2(s));
s = "111-11-111x";
System.out.println(test.test(s));
System.out.println(test.test2(s));
s = "111-11-11111";
System.out.println(test.test(s));
System.out.println(test.test2(s));
s = "111-11X1111";
System.out.println(test.test(s));
System.out.println(test.test2(s));
}
}
热心网友
时间:2023-11-17 20:54
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
Pattern pattern = Pattern.compile("\\d{3}-\\d{2}-\\d{4}");
Matcher matcher = pattern.matcher(string);
if(matcher.find()){
System.out.println("Valid SSN");
}
else{
System.out.println("InValid SSN");
}