库里斯托 2023-03-28 19:58 采纳率: 88.5%
浏览 11
已结题

关于#检查#的问题,如何解决?

img

package zyntm;

import java.util.Scanner;

public class Users {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        int j = 0;
        int[] arr = new int[3];
        for (int i = 0; i < 3; i++) {
            while(true) {
                if (s.split("-")[i].charAt(j)>='0'&&s.split("-")[i].charAt(j)<='9')
                    arr[i]++;
                else
                     break;
                j++;
            }
        }
        if (arr[0]==3&&arr[1]==2&&arr[2]==4)
            System.out.println(s + "是一个合法的社保号");
        else
            System.out.println(s + "是一个不合法的社保号");
    }
}

哪里有问题?如何修改?

  • 写回答

2条回答 默认 最新

  • pzzhao 2023-03-28 20:30
    关注

    你这个输入如果少-分割就会报数组越界异常,如果多出- 比如 DDD-DD-DDDD-DD 这种你也会认为是合法的,如果不采用楼上那种正则的方式,你需要先判断-分割之后数组大小是否为3,然后对数组中的每个字符串进行校验

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月8日
  • 已采纳回答 4月30日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 sql server 2012的下载出错
  • ¥15 图像识别用户软件开发
  • ¥20 类原生rom lineageos
  • ¥15 有没有会做中专,云计算,卷子的,有偿一百块
  • ¥15 HC32串口DMA循环发送数据
  • ¥15 Uni-App实现飞书授权登陆
  • ¥50 Qt应用中如何通过代码打开开发者工具devtools
  • ¥20 mpp硬解码h264转为yuv
  • ¥40 怎样批量对比两个数据库的表差异
  • ¥15 lettuce连接哨兵redis,主从切换异常