输入若干行字符串,判断每行字符串是否可以作为JAVA语法的合法标识符。
判断合法标识符的规则:由字母、数字、下划线“_”、美元符号“$”组成,并且首字母不能是数字。
输入格式:
输入有多行。
每行一个字符串,字符串长度不超过10个字符。
输出格式:
若该行字符串可以作为JAVA标识符,则输出“true”;否则,输出“false”。
输入样例:
abc
_test
$test
a 1
a+b+c
a’b
123
变量
输出样例:
true
true
true
false
false
false
false
true
代码长度限制16 KB
时间限制400 ms
内存限制64 MB
方法一: 通过正则表达式判断 Java正则表达式说明
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//中文判断"\u4e00-\u9fa5"
String format = "^[A-Za-z_$|\u4e00-\u9fa5]{1}[\\w$|\u4e00-\u9fa5]{0,}$";
while(sc.hasNextLine()){
String str = sc.nextLine();
//判断字符是否为合法标识符
System.out.println(str.matches(format));
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/cbd504d1ba890cb38b943a2cf5930813.png)
方法二:通过Character中的isJavaIdentifierStart与isJavaIdentifierPart判断
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String string = sc.nextLine();
boolean flag = true;
//判断第一个字符是否不符合
if (!Character.isJavaIdentifierStart(string.charAt(0))) {
System.out.println(false);
continue;
}
for (int i = 1; i < string.length(); i++) {
char ch = string.charAt(i);
//判断后续字符是否不符合
if(!Character.isJavaIdentifierPart(ch)){
flag = false;
break;
}
}
System.out.println(flag);
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/66f38e901354982c46ee181e0882d6bf.png)