java求助:写一个程序 输入一个七位数 判断是否前三位是字母 后四位是数字

效果:自己随便输入一个七位数 程序会自动判断输入的数字前三位是否是字母,后三位是否是数字。比如ABC1234。符合条件的就输出“OK”;如果不符合要求(不到七位或者输入格式不对),则输出“AAA0000”。
谢谢各位了!写得好的话还可以追加分数!

第1个回答  2012-06-23
我来给你写一个吧
public class Test {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
while (!"exit".equals(s)) {
//这里程序会先判断长度为7,因为是 and的关系,如果不满足的话不会调用test
if (s.length() == 7 && test(s)) {
System.out.println("ok");
} else {
System.out.println("AAA0000");
}
s = sc.next();
}
}

private static boolean test(String s) {
s = s.toUpperCase();
//由于主程序中已经确保传进来的是7位长度,所以这里直接取了各段数据来用就可以了。
String p = s.substring(0, 3);
String e = s.substring(3);
return e.matches("[0-9]*") && p.matches("[A-Z]*");
}
}
第2个回答  2012-06-23
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个七位数!");
String s = scanner.next();
char c[] = s.toCharArray();
boolean isLetter = true;
boolean isDigit = true;
for (int i = 0; i < 3; i++) {//判断前三位是否为字母
if (!Character.isLetter(c[i])) {
isLetter = false;
break;
}
}
for (int i = 4; i < c.length; i++) {//判断后三位是否为数字
if (!Character.isDigit(c[i])) {
isDigit = false;
break;
}
}
if (isLetter && isDigit && c.length != 7) {
System.out.println("OK");
} else {
System.out.println("AAA0000");
}
}
}
第3个回答  2012-06-23
public class P {
public static void main(String[] args) {
boolean flag= false;
String input = "ABC3644";
if(input==null||input.length()!=7){
System.out.println("the length of input string must be 7 ");
return ;
}
//方法1 ,使用正则表达式
Pattern p = Pattern.compile("^[a-zA-Z]{3}\\d{4}$");
flag = p.matcher(input).matches();
print(flag);
///方法2,比较囧的方法,不推荐
for (int i=0;i<3;i++) {
flag = Character.isLetter(input.charAt(i));
}
for(int i=3;i<7;i++){
flag = Character.isDefined(input.charAt(i));
}
print(flag);
}
private static void print(boolean flag){
if(flag){
System.out.println("OK");
}else{
System.out.println("wrong format! input like 'AAA000' ");
}
}
}
第4个回答  2012-06-23
public class RegexTest {
public static void main(String[] args) {
String input = "ABC1234";
if (input.length()==7 && input.substring(0, 3).matches("\\p{Alpha}{3}") && input.substring(3, 7).matches("\\p{Digit}{4}")) {
System.out.println("OK");
} else {
System.out.println("AAA0000");
}
}
}本回答被网友采纳
相似回答