String字符串java习题

一、 如题: 编写一个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();
    }
  }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值