刷题DAY15

保留字母

题目:编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出

输入:一个字符串,长度不超过80个字符

输出:删掉非英文字母后的字符串

输入:abc123+xyz.5

输出:abcxyz

import java.util.Scanner;
public class 保留字母 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String N=scanner.nextLine();
            char[] a=N.toCharArray();
            char[] b=N.toCharArray();
            int i,j;
            for(i=0;i<a.length;i++){
                if(a[i]>='a'&&a[i]<='z' ||a[i]>='A'&&a[i]<='Z'){
                    for(j=0;j<b.length;j++){
                        b[j]=a[i];
                        System.out.print(b[j]);
                        break; //注意这个坑,跳出这个循环,而不是整个循环。
                    }
                }
            }
        }
    }
​
​
​

知识点

String类 - toCharArray() 方法

toCharArray() 方法将字符串转换为字符数组

public char[] toCharArray()

某年某月的天数

题目:输入年和月,判断该月有几天?

输入:输入年和月

输出:输出该月的天数

输入:2009 1

输出:31

import java.util.Scanner;
public class 某年某月的天数 {
        public static void main(String[] args) {
            //输入某年某月,输出这个月有多少天
            //定义变量
            int year=0;
            int month=0;
            int day=0;
            //输入准备
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入年");
            year = sc.nextInt();
​
            System.out.println("请输入月");
            month = sc.nextInt();
​
​
            //程序处理
            switch(month) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    System.out.println(year+"年"+month+"月"+"有31天");
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    System.out.println(year+"年"+month+"月"+"有30天");
                    break;
                case 2:
                    //判断是否为闰年
                    if (year%4==0&&year%100!=0||year%400==0){
                        System.out.println(year+"年"+month+"月"+"有29天");
                    }
                    else{
                        System.out.println(year+"年"+month+"月"+"有28天");
                    }
                    break;
                default:
                    System.out.println("输入有误");break;
​
​
            }
        }
​
    }
​
​

知识点

switch

在分支结构中,我们除了使用if-else或者是if-else if之外,当分支量过大的时候,我们即可选择使用switch语句进行选择

Java中switch的三种用法详解:

  • switch 标准方式

  • switch - > 用法

  • switch yield 用法

switch标准用法:

switch (表达式) {
    case 值1:
        // 执行语句块1
        break;
    case 值2:
        // 执行语句块2
        break;
    ...
    case 值N:
        // 执行语句块N
        break;
    default:
        // 如果以上所有case都不匹配,执行默认语句块
}
​

case语句中指定的每个值必须具有与表达式兼容的类型。switch语句的执行顺序是,首先计算表达式的值,然后将该值与每个case的值进行比较,如果找到匹配的case,则执行该case下的语句,直到遇到break语句或switch语句结束。如果没有找到匹配的case,且存在default子句,则执行default子句中的语句。如果没有匹配的case且没有default子句,程序将不执行任何操作

switch ->:

switch (表达式) {
    case 值1 -> 执行语句块1;
    case 值2 -> 执行语句块2;
    ......
    case 值N -> 执行语句块N;  
    default:
        // 如果以上所有case都不匹配,执行默认语句块
}
​
int dayOfWeek = 2;
switch (dayOfWeek) {
    case 1 -> System.out.println("星期一");
    case 2 -> System.out.println("星期二");
    case 3 -> System.out.println("星期三");
    case 4 -> System.out.println("星期四");
    case 5 -> System.out.println("星期五");
    case 6 -> System.out.println("星期六");
    default -> System.out.println("星期日");
}
​

switch yield:

int numLetters = switch(seasonName){
    case "Spring" ->{
        System.out.println("spring time");
        yield 6;
        }
    case "Summer","Winter" -> 6; //可以使用yield关键字,也可以省略
    case "Fall" -> 4;
    default -> -1;
};
​

case穿透

在Java的switch非简化语句中,当匹配到的case中没加break;的时候,那就会执行当前case里面的语句,以及这个switch语句中当前case下面的所有case中或者是default中的语句。直到遇到break为止

public static void main(String[] args) {
    String date = "周二";
​
    switch(date){
        case "周一":
            System.out.println("周一");
        case "周二":
            System.out.println("周二");
        case "周三":
            System.out.println("周三");
        default:
            System.out.println("其他");
    }
}
​
​

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值