第二题:算法+异常处理 编写程序,校验输入字符串是否符合指定要求: (a)输入的字符串必须至少包含1个大写英文字符,1个小写英文字符,1个数字。 (b)输入字符串的长度在6~12个字符。 完成如下功能: (1)若满足要求,则在控制台输出提示“校验通过!”,否则,抛出自定义异常“InputStringException”。 (2)在控制台输出第一个数字是在那一位出现的。(注意字符串的第一个字符视为第1位,而不是第0位)
时间: 2023-03-10 14:16:17 浏览: 84
答:可以使用以下代码来实现:try { //检查输入字符串是否符合要求:至少包含1个大写英文字符,1个小写英文字符,1个数字,且长度在6~12个字符。 int upperCaseCount = 0; int lowerCaseCount = 0; int numberCount = 0; if (inputString.length() < 6 || inputString.length() > 12) { throw new InputStringException("InputStringException: The length of the input string is illegal!"); } for (int i = 0; i < inputString.length(); i++) { char c = inputString.charAt(i); if (Character.isUpperCase(c)) { upperCaseCount++; } else if (Character.isLowerCase(c)) { lowerCaseCount++; } else if (Character.isDigit(c)) { numberCount++; } } if (upperCaseCount < 1 || lowerCaseCount < 1 || numberCount < 1) { throw new InputStringException("InputStringException: The input string does not meet the requirements!"); } System.out.println("校验通过!"); //输出第一个数字是在那一位出现的。 int index = -1; for (int i = 0; i < inputString.length(); i++) { char c = inputString.charAt(i); if (Character.isDigit(c)) { index = i; break; } } System.out.println("第一个数字是在第" + (index + 1) + "位出现的。"); } catch (InputStringException e) { System.out.println(e.getMessage()); }
阅读全文