/**
* 判断身份证是否合法
*/
import java.util.Scanner; //导入Scannner
public class Demo20 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //创建键盘录入的对象
System.out.println("请输入一个身份证号(尾号为x请传入大写):");
String id = sc.nextLine(); //接收控制台输入的身份证号码
int[] num ={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; //定义一个整型数组存系数
String[] strs ={ "1","0","X","9","8","7","6","5","4","3","2"}; //定义一个字符串数组作为尾号备选
int sum = 0; //定义一个变量
for(int i =0;i<17;i++){ //遍历字符串
int num1= Integer.parseInt(id.charAt(i)+""); //将字符串类型转换为整形
sum+=num1*num[i]; //每一个系数和身份证相乘
}
int index = sum%11; //strs数组的索引
if(strs[index].equals(id.charAt(17)+"")){ //比较索引值相
System.out.println("合法尾号");
}else {
System.out.println("非法尾号");
}
}
}
/**
* 判断子串出现次数
*/
import java.util.Scanner;
public class Demo19 {
public static void main(String[] args) {
// 创建一个控制台录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一段字符串:");
// 接收第一段字符串
String str1 = sc.next();
System.out.println("请输入第二段字符串:");
// 接收第二段字符串
String str2 = sc.next();
// 创建一个 flag 保存结果。
int count =0;
// 遍历第一段字符串,挨着截取字符串与第二段字符串进行比较,由于要截取字符串,因此 i 的最大值应该等于第一段字符串的长度再减掉第二段字符串的长度。
for (int i = 0; i <= str1.length()-str2.length(); i++) {
String nstr = str1.substring(i,i+str2.length());
// 将截取出的字符串与第二段字符串进行比较
if(nstr.endsWith(str2)){
// 结果一致则停止循环,并将 flag 的值改为true
count++;
}
}
System.out.println(count);
}
}