字符串练习题

/**
 * 判断身份证是否合法
 */
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);
    }
}

 

posted @ 2021-05-10 22:43  爬虫王子  阅读(86)  评论(0)    收藏  举报