首页 > 编程语言 > Java基础字符串练习

Java基础字符串练习

时间:2023-03-17 21:31:51浏览次数:41  
标签:返回 ch false 数字 练习 return 字符串 Java id

​我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X。

练习提示:1、要判断字符串是否符合规则,方法的返回值类型是什么?参数列表是什么?

2、使用String的API,对每种不符合条件的情况作出判断,一旦发现不符合条件就可以结束方法的执行,返回结果了。

3、在主方法中创建键盘录入,调用方法,输入各种数据测试结果。

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入身份证号:");
String id = sc.nextLine();
System.out.println(check(id));
}

// 返回值boolean类型,表示是否符合规则。参数列表:需要判断的字符串
public static boolean check(String id) {
// 如果传递了空参数,返回false
if (id == null) {
return false;
}
// 如果是数字0开头,返回false
if (id.startsWith("0")) {
return false;
}
// 如果不是18位,返回false
if (id.length() != 18) {
return false;
}
// 遍历判断每一位
for (int i = 0; i < id.length(); i++) {
char ch = id.charAt(i);
// 前17位都是数字,最后一位可以是数字或者大写字母X
if (i == id.length() - 1) { // 最后一位
if (ch < '0' || ch > '9' && ch != 'X') { // 不是数字或者X
return false;
}
} else {
if (ch < '0' || ch > '9') {
return false;
}
}
}
// 所有的规则都符合,返回true
return true;
}

新手老铁们可以根据以下步骤练习:这道练习题还是比较有难度的

定义方法,返回值类型为boolean表示是否合法,参数列表为String类型的id,表示要判断的数据。

2、对每种不符合条件的情况作出判断

2.1、如果字符串长度不是18,返回false。

2.2、如果字符串以数字"0"开头,返回false。

2.3、遍历字符串,获取每一位字符,判断前17位,如果不是数字,返回false,判断最后一位如果不是数字或者X,返回false

2.4、所以的不符合条件都筛选完成,返回true

3、在主方法中创建键盘录入Scanner对象,调用nextLine()方法,获取用户输入,调用方法,传递参数,查看结果。要多运行几次,判断各种不符合条件的数据。

                              Java基础字符串练习_字符串

标签:返回,ch,false,数字,练习,return,字符串,Java,id
From: https://blog.51cto.com/u_15912723/6128406

相关文章

  • JAVA代码查错
    JAVA代码查错1.abstractclassName{privateStringname;publicabstractbooleanisStupidName(Stringname){}}大侠们,这有何错误?答案: 错。abstract method必......
  • JAVA编程题
    JAVA编程题1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供resetimportjava.util.*;publicclassbycomma{publicsta......
  • MDK 代码优化导致的获取字符串长度问题
    如下代码//平台_硬件版本_MCU型号_编译时间(预留64字节空间,通过工具寻找并改写)staticconstcharMCU_VERSION[64]="LATD_HW00_APP"; //不要修改,工具会自动修改......
  • 字符串
    字符串的内存问题点击查看代码publicstaticvoidmain(String[]args){Stringstr1="卡卡罗特";Stringstr2="卡卡罗特";Stringstr3......
  • 输入一个字符串(例如:3+6-3*4/2,运算符只有 + - * / 四个),计算结果。不考虑加减乘除优先级
    这是自己面试遇到的面试题,考Java基础,String。考的很基础,但是String确实java中很重要的基础部分。题目:输入一个字符串(例如:3+6-3*4/2,输出12。运算符只有+-*/四个),计算......
  • redis的简单动态字符串
    概念redis在c的基础上编写,但是redis的许多数据结构是不同于c的数据结构。redis的字符串表示是利用自己构建的SDS(简单动态字符串)作为默认字符串表示的。而c默认的字符......
  • Java中使用字节流和字符流操作文件的几种方法和性能对比
    注:本文转自:https://mp.weixin.qq.com/s/QuFkw-f1l0kyOqsBNNrRmw在Java中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入......
  • Java中获取 List中最后一个元素
    场景简单实现思路:list.get(list.size()-1);实现举例:List数据如下获取最后一个元素bookInfo.getFlightResult().get(bookInfo.getFlightResult().size()-1).getDsttime())......
  • Java中通过substring和charAt截取字符串并获取指定字符
    场景字符串类似如下现在要获取S:后面的数字9实现indedOf方法,获取某字符所在下标。flightResult.getCabinString().indexOf(flightResult.getDefaultCabin().getCabinCode())......
  • Java中将CST格式的时间字符串进行格式化
    场景Java中实现将CST格式的时间字符串按指定格式进行格式化。实现代码SimpleDateFormatdateFormat=newSimpleDateFormat("EEEMMMddHH:mm:sszzzyyyy",Locale.US);......