java求助:写一个程序 输入一个七位数 判断是不是前三位是字母 后四位是数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java求助:写一个程序 输入一个七位数 判断是不是前三位是字母 后四位是数字相关的知识,希望对你有一定的参考价值。
效果:自己随便输入一个七位数 程序会自动判断输入的数字前三位是否是字母,后三位是否是数字。比如ABC1234。符合条件的就输出“OK”;如果不符合要求(不到七位或者输入格式不对),则输出“AAA0000”。
谢谢各位了!写得好的话还可以追加分数!
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]*");
参考技术B 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");
参考技术C 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\\d4$");
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' ");
参考技术D public class RegexTest
public static void main(String[] args)
String input = "ABC1234";
if (input.length()==7 && input.substring(0, 3).matches("\\pAlpha3") && input.substring(3, 7).matches("\\pDigit4"))
System.out.println("OK");
else
System.out.println("AAA0000");
编写java程序,用户手动输入判断是不是为回文字符串(从前向后读从后向前读是一样,输入内容不能固定)
package test;import java.util.Scanner;
public class Huiw
/**
* @param args
*/
public static void main(String[] args)
Scanner scanner =new Scanner(System.in);
System.out.println("输入一个正整数");
int iIn=scanner.nextInt(); //接收输入的数字
int k=0,iB=iIn;
int[] A=new int[10];
for ( ;iB>0;) //把数字拆分,放入数组
A[k++]=iB%10;
iB=iB/10;
//System.out.print(A[k]);
//System.out.println(k);
// for(int j=0;j<k;j++)
// System.out.print(A[j]+" ");
int i=0;
for(;i<k/2;i++)
if (A[i]!=A[k-i-1])
System.out.println("NO");
break;
// System.out.println(i);
// System.out.println(k);
if(i==k/2)
System.out.println("YES");
参考技术A public static boolean isEchoWord(String word)
for (int i = 0; i < word.length() + 1 / 2; i++)
if (word.charAt(i) != word.charAt(word.length() - 1 - i))
return false;
return true;
public static void main(String args[]) throws IOException
System.out.println("please input word:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (String input = br.readLine(); !"exit".equals(input); input = br.readLine())
System.out.println(isEchoWord(input));
参考技术B 你可以用栈的方法试试,先入后出,然后判断
以上是关于java求助:写一个程序 输入一个七位数 判断是不是前三位是字母 后四位是数字的主要内容,如果未能解决你的问题,请参考以下文章
程序设计输入一个三位数,求各个数位数字的三次方之和,并判断该和是不是与该数相同?