JAVA编程题(String)
编写程序,提示用户输入一个社会保险号码,它的格式是DDD-DD-DDDD,其中D是一个数字。程序会为正确的社保号显示“ValidSSN",否则显示InvalidSSN.这...
编写程序,提示用户输入一个社会保险号码,它的格式是DDD-DD-DDDD,其中D是一个数字。程序会为正确的社保号显示“Valid SSN",否则显示Invalid SSN.
这道题是书上String类那章的练习题,谁知道怎么写?最好是用String类里的一些简单的方法。
最好能给个详细点的注释,刚学这章不太懂. 展开
这道题是书上String类那章的练习题,谁知道怎么写?最好是用String类里的一些简单的方法。
最好能给个详细点的注释,刚学这章不太懂. 展开
推荐于2017-09-01
展开全部
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));
}
}
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));
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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");
}
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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询