编译原理词法分析器
来源:互联网 发布:c语言 丹尼斯里奇 编辑:程序博客网 时间:2024/04/30 11:35
编写一个词法分析器,它针对输入文件,实现以下功能:
1)每遇到你的学号,就输出你的名字,对于其他的串原样输出。
2)统计输入文件中字母的数目。
例如:(以肖永跃的上机题为例):
输入文件如下所示:
200213001 hello world
wo ai tian an men
hello world i love
200213001
输出应该如下所示:
肖永钦 hello world
wo ai tian an men
hello world i love
肖永钦
# of chars = 66
java代码解决:
package Bianyiyuanli.ThirdWeek;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class WordAlaylist {private static Map<String, String> student;private static int count = 0;private static int flag = 0;private static String temp;static {student = new HashMap<String, String>();student.put("20137760229", "总理");student.put("20137760999", "习近平");student.put("20161224", "马克思原理");}public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String str = sc.nextLine() + " ";for (int i = 0; i < str.length(); i++) {flag = i;// 记录是数字的0-9的位置if (str.charAt(i) <= 57 && str.charAt(i) >= 48) { while(str.charAt(i) <= 57 && str.charAt(i) >= 48) i++;//i++;temp = str.substring(flag, i);// 截取数字部分String s = student.get(temp);//从Map集合获取相对应的值,即学号--->姓名if (s == null) {System.out.println("该" + temp + "学号不存在");} else {// 获取学号对应的姓名System.out.print(student.get(temp) );}System.out.print(str.charAt(i));}else if((str.charAt(i) >='A' &&str.charAt(i)<='Z') || (str.charAt(i)>='a' && str.charAt(i) <= 'z')){count++;System.out.print(str.charAt(i));}else{System.out.print(str.charAt(i));}}System.out.println();System.out.println("单词的个数"+count);}}}
0 0
- 编译原理---词法分析器
- 编译原理词法分析器
- 编译原理 词法分析器
- 【编译原理】词法分析器
- 编译原理词法分析器
- 编译原理-词法分析器
- 编译原理词法分析器
- 编译原理词法分析器
- 编译原理--词法分析器
- 编译原理—词法分析器
- 编译原理----Lex词法分析器
- 词法分析器-2-编译原理
- 【编译原理】Lex词法分析器
- 编译原理__词法分析器
- 编译原理(词法分析器)
- 编译原理词法分析器c++源程序
- 编译原理课程设计之词法分析器
- 编译原理->词法分析器的分析
- 自定义UITableViewCell左滑显示编辑按钮
- 研磨设计模式--单例模式--双重检查加锁
- 【VR】VR中的交互
- IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)
- ZeroClipboard插件的多div绑定
- 编译原理词法分析器
- 汇编语言学习第十章-CALL和RET指令
- 用Service让模拟器为我们放首歌
- 将一个普通项目变为maven项目
- JavaScript 在有序数组中插入数字
- leetcode-9. Palindrome Number
- Jsp技术总结
- ACM 各进制求十进制和问题
- Java 子类方法的父类方法相互调用