编写程序检验Java变量的合法性。程序对用户输入的变量进行检验,做出如下判断:
(1)illegal;(2)legal,butusespoorstyle;(3)professional。具体标准如下。
用户输入‘q’,程序结束。
legal的判断标准:
-只包含字母、数字、_和$符号。
-只能以字母、_或者$开始。
-不能以数字开始。
-不能是关键字。
Professional的判断标准:
-合法的
-只使用数字和字母
-第一个字母是小写字母
(示例)
This program checks the properness of a given Java variable name
Enter a variable name (q to quit): streetAddress2 Professional!
Enter a variable name (q to quit): street address2 Illegal.
Enter a variable name (q to quit): StreetAddress2 Legal,butusespoorstyle.
Enter a variable name (q to quit): 2ndStreetAddress Illegal.
Enter a variable name (q to quit): street$address$2 Legal,butusespoorstyle.
Enter a variable name (q to quit): q
检测Java变量名是否合法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- Java大魔王 2022-10-10 11:41关注
import java.util.Arrays; import java.util.Scanner; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { //关键字列举数组 String[] keyWords = new String[]{"class", "interface", "public", "extends", "private", "protect", "while", "if", "for", "abstract", "final"}; Scanner sc = new Scanner(System.in); boolean flag = true; while(flag) { System.out.print("Enter a variable name (q to quit):"); String str = sc.nextLine(); if("q".equals(str)) { //如果输入的是q,终止循环 flag = false; break; } if("".equals(str) || str == null) { System.out.println("legal"); }else { //输入的不是q,开始校验 String rexOne = "[a-zA-Z]"; String rexTwo = "[0-9]"; String rexThree = "[_$]"; String rexFour = "[a-z]"; if(str.replaceAll(rexOne, "").replaceAll(rexTwo, "").replaceAll(rexThree, "").length() > 0) { //判断是否有除了字母,数字,_$之外的内容 System.out.println("legal,but uses poor style"); }else { //判断是否是以数字开头 String firstStr = str.substring(0, 1); if(Pattern.compile(rexTwo).matcher(firstStr).find()) { System.out.println("legal,but uses poor style"); }else if(Arrays.asList(keyWords).contains(str)){ System.out.println("legal,but uses poor style"); }else { if(str.replaceAll(rexOne, "").replaceAll(rexTwo, "").length() == 0 && Pattern.compile(rexFour).matcher(firstStr).find()) { System.out.println("professional"); }else { System.out.println("legal"); } } } } } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报 编辑记录无用 1
悬赏问题
- ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
- ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
- ¥15 SPSS分类模型实训题步骤
- ¥15 求解决扩散模型代码问题
- ¥15 工创大赛太阳能电动车项目零基础要学什么
- ¥20 limma多组间分析最终p值只有一个
- ¥15 nopCommerce开发问题
- ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
- ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
- ¥15 pycharm输出和导师的一样,但是标红