输入若干行字符串,判断每行字符串是否可以作为JAVA语法的合法标识符。
判断合法标识符的规则:由字母、数字、下划线“_”、美元符号“$”组成,并且首字母不能是数字。
输入格式:
输入有多行。
每行一个字符串,字符串长度不超过10个字符。
输出格式:
若该行字符串可以作为JAVA标识符,则输出“true”;否则,输出“false”。
输入样例:
abc
_test
$test
a 1
a+b+c
a’b
123
变量
输出样例:
true
true
true
false
false
false
false
true
代码实现:
/*输入若干行字符串,判断每行字符串是否可以作为JAVA语法的合法标识符。
判断合法标识符的规则:由字母、数字、下划线“_”、美元符号“$”组成,并且首字母不能是数字。*/
//tips:使用character的方法
Scanner sc = new Scanner(System.in);
System.out.println("输入若干行字符串,判断每行字符串是否可以作为JAVA语法的合法标识符:");
while (sc.hasNext()) {
/* nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。
(简单点说,next我只要字,nextLine我啥都要)*/
String str1 = sc.nextLine();
boolean flag = false;
//对输入的字符进行循环判断
for (int i = 0; i < str1.length(); i++) {
char c = str1.charAt(i);
//首字符判断
if (i == 0) {
if (Character.isJavaIdentifierStart(c)) {
flag = true;
} else {
//不满足合法标识符的规则
break;
}
} else {
//其他部分判断
if (Character.isJavaIdentifierPart(c)) {
flag = true;
} else {
//不满足合法标识符的规则
break;
}
}
}
//打印判断结果
System.out.println(flag);
}