⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 identifier.java

📁 这是《Java2程序设计实用教程(第2版)》每个章节后面的部分习题及实验。
💻 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 + -