java 关键字提取_提取Java关键字
展开全部
我写了个Keywords.java类,代62616964757a686964616fe78988e69d8331333262356132码如下:
*************************************************************
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
public class Keywords extends JFrame {
String[] keywords = { "abstract", "boolean", "break", "byte", "case",
"catch", "char", "class", "continue", "default", "do", "double",
"else", "extends", "false", "final", "finally", "float", "for",
"if", "implements", "import", "instanceof", "int", "interface",
"long", "native", "new", "null", "package", "private", "protected",
"public", "return", "short", "static", "super", "switch",
"synchronized", "this", "throw", "throws", "transient", "true",
"try", "void", "volatile", "while", "const", "goto" };
JTextArea text;
JTextArea result;
public Keywords() {
this.setTitle("计算关键字数");
// 文本框
text = new JTextArea(6, 50);
text.setLineWrap(true);
JScrollPane textScroll = new JScrollPane(text);
text.setBorder(BorderFactory.createBevelBorder(1));
JPanel textPanel = new JPanel(new BorderLayout());
textPanel.setBorder(BorderFactory.createTitledBorder("导入的文本"));
textPanel.add(textScroll);
// 结果框
result = new JTextArea(6, 50);
result.setLineWrap(true);
JScrollPane resultScroll = new JScrollPane(result);
result.setBorder(BorderFactory.createBevelBorder(1));
JPanel resultPanel = new JPanel(new BorderLayout());
resultPanel.setBorder(BorderFactory.createTitledBorder("计算结果"));
resultPanel.add(resultScroll);
// 导入文本和结果框
JPanel allPanel = new JPanel();
allPanel.setLayout(new GridLayout(2, 1));
allPanel.add(textPanel);
allPanel.add(resultPanel);
// 按钮
JButton impButton = new JButton("导入文本");
JButton calcButton = new JButton("计算关键字数");
JPanel buttonPanel = new JPanel(new FlowLayout());
buttonPanel.add(impButton);
buttonPanel.add(calcButton);
// 添加
this.add(allPanel, BorderLayout.CENTER);
this.add(buttonPanel, BorderLayout.SOUTH);
// this.setSize(400, 300);
this.pack();
Toolkit tool = Toolkit.getDefaultToolkit();
Dimension screen = tool.getScreenSize();
this.setLocation(screen.width / 2 - this.getWidth() / 2, screen.height
/ 2 - this.getHeight() / 2);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 导入文本
impButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
writeText();
}
});
// 计算关键字数
calcButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// for(String ss : s) {
// System.out.println(ss);
// }
String[] start = text.getText().trim().split("\n");
System.out.println("start: " + start.length);
// String[] rets = new String[start.length];
StringBuffer ret = new StringBuffer();
for (int i = 0; i
StringTokenizer st = new StringTokenizer(start[i]);
int n = 0;
while (st.hasMoreTokens()) {
String comp = st.nextToken();
for (String s : keywords) {
if (s.equals(comp)) {
n++;
if (n == 1) {
ret.append(i + ": ");
ret.append(s);
} else {
ret.append(", " + s);
}
}
}
}
if (n != 0) {
ret.append("\n");
}
}
result.setText(ret.toString().trim());
}
});
}
// 导入文本
public void writeText() {
try {
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(this);
File file = chooser.getSelectedFile();
BufferedReader br = new BufferedReader(new FileReader(file));
String s;
text.setText("");
while ((s = br.readLine()) != null) {
text.append(s + "\n");
}
text.setText(text.getText().trim());
System.out.println(text.getText());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
new Keywords();
}
}
*************************************************************
运行结果如下:
java 关键字提取_提取Java关键字相关推荐
- java基础语句_【Java基础-Java语言基础】
知识点:1.关键字 2.标识符 3.变量和常量 一.关键字 1.Java中的关键字有很多一共53个关键字有两个是保留字(java的关键字都是小写的!!) 2.Java中的保留字 (1)const 常量 ...
- java核心教程_核心Java教程
java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...
- java 字符串包_包java字符串
Java核心技术卷I基础知识3.6.3 不可变字符串 3.6.3 不可变字符串 String类没有提供用于修改字符串的方法.如果希望将greeting的内容修改为"Help!",不 ...
- java初始化数据报_初始化java原因
虚拟机的类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类 即虚拟机的类加载机制. 在Java中,类型的加载.链接 ...
- java jvm对象_【Java】JVM
在 HotSpot 虚拟机中,一个对象在内存中存储的布局可以分为三块区域:对象头(Object Header).实例数据(Instance Data)和对齐填充(Padding). 当我们在 Java ...
- java 持续交付_【Java架构:持续交付】一篇文章搞掂:Jenkins
1.1.使用yum安装JDK a.检查系统是否有安装open-jdk rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输入信息表示 ...
- java queue使用_使用Java使用Amazon Simple Queue Service
java queue使用 Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统 ...
- java避免空指针异常_避免Java中的空指针异常
java避免空指针异常 空指针异常是Java中最常见,最烦人的异常. 在这篇文章中,我想避免这种不希望的异常. 首先让我们创建引发空指针异常的示例 private Boolean isFinished ...
- 纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...
最近可能有点闲的慌,没事就去找面试面经,整理了一波面试题.我大概是分成了Java基础.中级.高级,分布式,Spring架构,多线程,网络,MySQL,Redis缓存,JVM相关,调优,设计模式,算法与 ...
- java多线程编程_《java多线程编程实战指南》读书笔记 -- 基本概念
展开 并发:多个线程操作相同资源,保证线程安全,合理使用资源 高并发:服务能同时处理多个请求,提高程序性能 测试上下文切换工具 Lmbench3 测量上下文切换时长 vmstat 测量上下文切换次数 ...
最新文章
- Javascript history pushState onpopstate方法做AJAX SEO
- VS2017报错头文件unistd.h
- LeetCode 21 合并两个有序链表
- x390更换开机_ThinkPad X390怎么装win10系统|ThinkPad X390用u盘重装win10系统教程-系统城...
- Web开发者必备:Web应用检查清单
- html5的优势ie9,WebQQ升级支持IE9 充分运用HTML5优势
- Spark笔记整理(一):spark单机安装部署、分布式集群与HA安装部署+spark源码编译...
- Java String常用方法
- JavaScript实现大数据(条形统计图表)
- Vblog#1 English learning for science research
- zlib库介绍四:zlib算法(LZ77、LZ78、霍夫曼编码、滑动窗口、Rabin-Karp算法、哈希链、I/O缓冲区)
- Java后端开发之JSON入门
- VS2003下载地址
- k8s 超详细总结,面试必问
- vlc播放g711 rtp流媒体sdp文件及其参数介绍
- stm32结合TFLCD编程遇到的问题之.\Objects\EXTI_Project.axf: Error: L6218E: Undefined symbol POINT_COLOR (referre
- OFDMA trigger frame
- 均值不等式中考_数学不等式解题技巧
- php命令提示无效,window_Win7系统命令提示符输入指令无效问题的解决办法,Win7系统命令提示符输入指令无 - phpStudy...
- GDPR is coming!
热门文章
- 商业计划书范文3000_清远可以写商业计划书做的报告范文
- 电力猫引起的OpenWrt路由器死机掉线的原因
- 【南卡樱桃|读书笔记《学习高手》】
- C语言编程必背单词百度云,c语言编程必背单词-20210403022023.pdf-原创力文档
- 哥德尔 艾舍尔 巴赫--集异璧之大成
- 教学管理系统java_Java 实现简易教务管理系统的代码
- Linux添加keytool环境变量,linux keytool命令
- soul刷屏编程代码_#自学编程方法论#迭代式学习
- java保存视频到本地
- 《IT播吧.-.大灰狼老师出品的零基础汇编视频课程》学习笔记