保留字母
题目:编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出
输入:一个字符串,长度不超过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("其他"); } }