展开全部

我写了个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关键字相关推荐

  1. java基础语句_【Java基础-Java语言基础】

    知识点:1.关键字 2.标识符 3.变量和常量 一.关键字 1.Java中的关键字有很多一共53个关键字有两个是保留字(java的关键字都是小写的!!) 2.Java中的保留字 (1)const 常量 ...

  2. java核心教程_核心Java教程

    java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...

  3. java 字符串包_包java字符串

    Java核心技术卷I基础知识3.6.3 不可变字符串 3.6.3 不可变字符串 String类没有提供用于修改字符串的方法.如果希望将greeting的内容修改为"Help!",不 ...

  4. java初始化数据报_初始化java原因

    虚拟机的类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类 即虚拟机的类加载机制. 在Java中,类型的加载.链接 ...

  5. java jvm对象_【Java】JVM

    在 HotSpot 虚拟机中,一个对象在内存中存储的布局可以分为三块区域:对象头(Object Header).实例数据(Instance Data)和对齐填充(Padding). 当我们在 Java ...

  6. java 持续交付_【Java架构:持续交付】一篇文章搞掂:Jenkins

    1.1.使用yum安装JDK a.检查系统是否有安装open-jdk rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输入信息表示 ...

  7. java queue使用_使用Java使用Amazon Simple Queue Service

    java queue使用 Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统 ...

  8. java避免空指针异常_避免Java中的空指针异常

    java避免空指针异常 空指针异常是Java中最常见,最烦人的异常. 在这篇文章中,我想避免这种不希望的异常. 首先让我们创建引发空指针异常的示例 private Boolean isFinished ...

  9. 纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...

    最近可能有点闲的慌,没事就去找面试面经,整理了一波面试题.我大概是分成了Java基础.中级.高级,分布式,Spring架构,多线程,网络,MySQL,Redis缓存,JVM相关,调优,设计模式,算法与 ...

  10. java多线程编程_《java多线程编程实战指南》读书笔记 -- 基本概念

    展开 并发:多个线程操作相同资源,保证线程安全,合理使用资源 高并发:服务能同时处理多个请求,提高程序性能 测试上下文切换工具 Lmbench3 测量上下文切换时长 vmstat 测量上下文切换次数 ...

最新文章

  1. Javascript history pushState onpopstate方法做AJAX SEO
  2. VS2017报错头文件unistd.h
  3. LeetCode 21 合并两个有序链表
  4. x390更换开机_ThinkPad X390怎么装win10系统|ThinkPad X390用u盘重装win10系统教程-系统城...
  5. Web开发者必备:Web应用检查清单
  6. html5的优势ie9,WebQQ升级支持IE9 充分运用HTML5优势
  7. Spark笔记整理(一):spark单机安装部署、分布式集群与HA安装部署+spark源码编译...
  8. Java String常用方法
  9. JavaScript实现大数据(条形统计图表)
  10. Vblog#1 English learning for science research
  11. zlib库介绍四:zlib算法(LZ77、LZ78、霍夫曼编码、滑动窗口、Rabin-Karp算法、哈希链、I/O缓冲区)
  12. Java后端开发之JSON入门
  13. VS2003下载地址
  14. k8s 超详细总结,面试必问
  15. vlc播放g711 rtp流媒体sdp文件及其参数介绍
  16. stm32结合TFLCD编程遇到的问题之.\Objects\EXTI_Project.axf: Error: L6218E: Undefined symbol POINT_COLOR (referre
  17. OFDMA trigger frame
  18. 均值不等式中考_数学不等式解题技巧
  19. php命令提示无效,window_Win7系统命令提示符输入指令无效问题的解决办法,Win7系统命令提示符输入指令无 - phpStudy...
  20. GDPR is coming!

热门文章

  1. 商业计划书范文3000_清远可以写商业计划书做的报告范文
  2. 电力猫引起的OpenWrt路由器死机掉线的原因
  3. 【南卡樱桃|读书笔记《学习高手》】
  4. C语言编程必背单词百度云,c语言编程必背单词-20210403022023.pdf-原创力文档
  5. 哥德尔 艾舍尔 巴赫--集异璧之大成
  6. 教学管理系统java_Java 实现简易教务管理系统的代码
  7. Linux添加keytool环境变量,linux keytool命令
  8. soul刷屏编程代码_#自学编程方法论#迭代式学习
  9. java保存视频到本地
  10. 《IT播吧.-.大灰狼老师出品的零基础汇编视频课程》学习笔记