📄 identifier.java
字号:
//【习2.26】 识别标识符。
/*
已知标识符的语法图如下:
┌───┐
┌─┤ 字母 │←┐
标识符 ┌───┐ ↓ └───┘ │
───→│ 字母 ├──────────┼──→
└───┘ ↑ ┌───┐ │
└─┤ 数字 │←┘
└───┘
读入一个字符串st,识别出其中所有的标识符 。
包含关键字。
*/
public class Identifier
{
public static boolean isIdentifier(String str) //判断指定字符串是否为标识符
{
boolean yes = true;
if (str!=null && str.length()>0) //有效字符串
{
char ch = str.charAt(0); //第1个字符
if (ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch=='_' || ch=='$') //字母开头
{
int i=1;
while (yes && i<str.length())
{
ch = str.charAt(i);
yes = ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch=='_' || ch=='$' || ch>='0' && ch<='9';
i++;
}
}
else yes = false;
}
else yes = false;
return yes;
}
public static void pickupID(String str) //识别出指定字符串str中的所有标识符
{
if (str!=null && str.length()>0)
{
System.out.println("str="+str);
System.out.print("ID: ");
int i=0;
while (i<str.length())
{
char ch = str.charAt(i);
if (ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch=='_' || ch=='$') //字母开头
{
String id="";
do
{
id = id + ch; //字符串与字符连接,自动将字符转换成字符串
i++;
if (i<str.length())
ch = str.charAt(i);
}while(i<str.length() && (ch>='A' && ch<='Z' || ch>='a' && ch<='z' || ch=='_' || ch=='$' || ch>='0' && ch<='9'));
System.out.print(id+" ");
}
else
i++;
}
System.out.println();
}
}
public static void main(String args[])
{
// String str = "1name";
String str = "_name1";
System.out.println(str+" isIdentifier? "+isIdentifier(str));
str = "10+a1+b+c*(d-2)";
pickupID(str);
}
}
/*
程序运行结果如下:
_name1 isIdentifier? true
1name2age isIdentifier? false
name1+ isIdentifier? false
str=10+a1+b+c*(d-2)
ID: a1 b c d
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -