一、 如题: 编写一个Java方法 用来统计所给字符串中大写英文字母的个数 小写英文字母的个数以及非英文字母的个数
1. 省题:首先我们要给一串字符统计大写,小写英文,还有非英文的数字,根据语言的底层都是ASCII码,但是转为该码又比较麻烦,所以往上想一层,从A到Z都是连着的,包括a到z,所以我们只要用if语句就可以实现了。
*a b c d e f g h i j k l m n o p q r s t u v w x y z *
*A B C D E F G H I J K L M N O P Q R S T U V W X Y Z *
2. 代码如下:
public static void main(String[] args){
String s="321IJIjiji";
int smallChar=0;
int bigChar=0;
int el=0;
for(int i=0;i<s.toCharArray().length;i++){
char c=s.charAt(i);
if(t>'a'&&t<'z'){
smallChar++;
}else if(t>'A'&&t<'Z'){
bigChar++;
}else{
el++;
}
}
System.out.println("大写英文字母的个数: "+bigChar+"小写英文的字母个数:"+smallChar+"其他字母的个数为:"+el);
}
二、编写一个程序 提示用户输入一个社会保险号码,格式为DDD-DD-DDDD,其中D必须为数字。程序会判定输入的内容是否满足社保号码格式,如满足显示“Valid CardNo” 否则显示“Invalid CardNo”
1.首先用循环是最好理解和编程的,但是我们要考虑到循环判断的对象是俩种的,一个是 ’ - ’ ,一个是数字,用最笨的方法一个一个判断也是可以的,但是不推荐。所以我们可以新建一个数组,用来存放字符串数字的下标,在外层套一个判断语句,先把 ’ - ’ 判断出来,里面循环。
2. 代码如下:
package Test;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
/*
编写一个程序 提示用户输入一个社会保险号码,格式为DDD-DD-DDDD,其中D必须为数字。
程序会判定输入的内容是否满足社保号码格式,如满足现实“Valid CardNo” 否则显示“Invalid CardNo”
*/
String s=input();
check(s);
}
public static String input(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入如下格式的号码XXX-XX-XXXX: ");
String s = sc.nextLine();
return s;
}
public static void check(String s){
int[] t = new int[]{ 0, 1, 2, 4, 5, 7, 8, 9, 10} ;
if (s.charAt(3) == '-' && s.charAt(6) == '-') {
for (int i = 0; i < t.length; i++) {
if (s.charAt(t[i]) >= 0 && s.charAt(t[i]) < 10) {
System.out.println("Valid CardNo");
} else {
System.out.println("Invalid CardNo");
input();
}
}
} else {
System.out.println("Invalid CardNo");
input();
}
}
}
三、【群发消息】用户输入一个密码 编写一个程序检测密码是否合法 密码规则:密码长度在6-12位,密码只能包含数字和字母,密码至少有两个数字且不能以数字开头 如果判定正确 输出“密码正确”否则输出"密码错误"。
1. 首先审题,输入一串字符串,长度必须在6到12位的长度,并且该字符串的第一位只能为字符,并且所有字符串只由数字和字母组成;然后确定形式,不考虑其他,仍是控制台输入,接着判断首字母是否合规,然后判断长度是否合规,最后判断字符串元素是否合规,合规显示密码正确,其他情况一律密码错误。
2.代码如下:
package Test;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
/*
【群发消息】用户输入一个密码 编写一个程序检测密码是否合法 密码规则:密码长度在6-12位,
密码只能包含数字和字母,密码至少有两个数字且不能以数字开头 如果判定正确 输出“密码正确”否则输出"密码错误"
*/
String s=input();
check(s);
}
public static String input(){
Scanner sc =new Scanner(System.in);
System.out.println("请输入您的密码");
String s=sc.nextLine();
return s;
}
public static void check(String s){
if(s.charAt(0)>=0&&s.charAt(0)<10){
if(s.toCharArray().length>=6&&s.toCharArray().length<=12){
for (int i = 0; i <s.toCharArray().length; i++) {
if((s.charAt(i)>=0&&s.charAt(i)<10)||(s.charAt(i)>'a'&&s.charAt(i)<'z')||(s.charAt(i)>'A'&&s.charAt(i)<'Z')){
System.out.println("密码正确");
}else {
System.out.println("您的密码不合规范,请检查是否包含特殊字符!");
input();
}
}
}else {
System.out.println("您的密码不合规范,请检查密码长度是否在6~12位之间!");
input();
}
}else {
System.out.println("您的密码不合规范,请检查首字母是否正确!");
input();
}
}
}