目录
2.Random、ArrayList、Iterator三个类的结合使用
3.分别统计字符串中大写字母、小写字母以及数字与其他字符的个数
1.定义一个方法,根据用户身份证号码计算其年龄并输出
利用String类输入身份证号,身份证号的第七位到第十位为出生年,在String类的字符串中对应下标为6到9,再利用StringBuilder类将身份证号的下标为6——9的字符拼接即可.
import java.util.Scanner;
public class Solution1 {
//利用String类来解决该问题
public static void calculateAge(String idNumber) {
StringBuilder sb = new StringBuilder();
for (int i = 6; i <= 9; i++) {
sb.append(idNumber.charAt(i));
}
int birth = Integer.valueOf(sb.toString());
int age = 2022 - birth + 1;
System.out.println("该用户的年龄为: " + age);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入你的身份证号");
String idNumber = scan.next();
calculateAge(idNumber);
}
}
运行结果
2.Random、ArrayList、Iterator三个类的结合使用
采用Random类或者Math类随机生成一组随机数,存入List集合类(ArrayList、LinkedList等都可以),并利用Iterator接口便利集合。
利用Random生成随机数,在nextInt()方法传入参数100,即指定随机生成的数字范围为0~99,在for循环中指定生成8个随机数,边生成边将其存入顺序表中,之后再利用Iterator迭代器对其进行遍历输出.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class Solution2 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 8; i++) {
list.add(random.nextInt(100));//约束生成数字的范围0~99
}
Iterator iterator = list.iterator();
while(iterator.hasNext()) {
int x = (int) iterator.next();
System.out.print(x + " ");
}
}
}
运行结果
3.分别统计字符串中大写字母、小写字母以及数字与其他字符的个数
分别统计字符串中出现的大写字母、小写字母个数,以及出现的数字字符以及其他字符的个数。
利用String类及其常用方法来实现该功能,利用charAt方法来实现对每一个字符的访问,再定义四个变量,分别用来统计大写、小写字母、数字、字符的个数,之后依次输出即可
import java.util.Scanner;
public class Solution3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入字符串: ");
String str = scan.next();
int a = 0;//小写字母个数
int b = 0;//大写字母个数
int c = 0;//数字个数
int d = 0;//其他字符个数
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
a++;
}else if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
b++;
}else if(str.charAt(i) >= '0' && str.charAt(i) <= '9') {
c++;
}else {
d++;
}
}
System.out.println("大写字母有: " + a + "个");
System.out.println("小写字母有: " + b + "个");
System.out.println("数字有: " + c + "个");
System.out.println("其他字符有: " + d + "个");
}
}
4.编写一个程序,实现字符串大小写的转换并倒序输出
具体要求:(1)使用for循环将字符串从最后一个字符开始遍历。(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString( )方法,并将得到的结果输出。
注意:倒叙序出要单独写一个有参的方法,在主函数里调用该方法完成测试。
import java.util.Locale;
import java.util.Scanner;
public class Solution4 {
public static void reversePrint(String str) {
StringBuffer sbf = new StringBuffer();
for (int i = str.length() - 1; i >= 0 ; i--) {
char tmp = str.charAt(i);
if(tmp >= 'a' && tmp <= 'z') {
sbf.append(String.valueOf(tmp).toUpperCase());
}else if(tmp >= 'A' && tmp <= 'Z') {
sbf.append(String.valueOf(tmp).toLowerCase());
}
}
System.out.println("倒叙后的结果为: " + sbf.toString());
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入要倒叙输出的字符串: ");
String str = scan.next();
reversePrint(str);
}
}