📄 wordanalysis.java
字号:
package operation;
//按单词分析文本类
public class WordAnalysis {
private int wordAmount; // 文本单词数
private String[] words; // 所有单词集合
private int[] start; // 所有单词开始位置
private int[] end; // 所有单词结束位置
public WordAnalysis(String text) {
wordAmount = countWordAmount(text); // 保存单词数和开始 结束位置
words = saveWords(text); // 保存所有单词;
}
// 获取文本单词数
public int getWordAmount() {
return wordAmount;
}
// 获取所有单词集合
public String[] getWords() {
return words;
}
// 获取第NO个单词
// NO错误返回null
public String getWord(int NO) {
if (NO < 0 || NO >= wordAmount) {
return null;
}
return words[NO];
}
// 获取所有单词开始位置
public int[] getStart() {
return start;
}
// 获取第NO个单词的开始位置
// NO错误返回-1
public int getStart(int NO) {
if (NO < 0 || NO >= wordAmount) {
return -1;
}
return start[NO];
}
/*
* // 获取所有单词开始位置 public int[] getEnd() { return end; } // 获取第NO个单词的开始位置 //
* NO错误返回-1 public int getEnd(int NO) { if (NO < 0 || NO >= wordAmount) {
* return -1; } return end[NO]; }
*/
// 判断是否字母
private boolean isChar(char c) {
int temp = (int) c; // 把char转为ASCII码
if (temp < 97) { // 少于'a'的字符加32 以便与小写字母对比
temp = temp + 32;
}
if (temp >= 97 && temp <= 122) { // 判断是否大写字母
return true;
} else {
return false;
}
}
// 计算文本单词数 并保存所有单词开始和结束位置
// text 文本
private int countWordAmount(String text) {
int i = 0, len = 0, amount = 0;
boolean point = false; // 指向字符是否字母 初始为false
text = text + '\n'; // 文本末尾添加非字母 以便最后字符为连续字母时可以正确记录位置
len = text.length();
int[] temp = new int[len];
for (i = 0; i < len; i++) {
if (isChar(text.charAt(i)) != point) { // 前一字符与当前字符不同时为字母或非字母
temp[amount] = i; // 记录位置
point = !point; // point指向当前字符
amount++;
}
}
amount = amount / 2; // 单词数为 位置数/2
start = new int[amount];
end = new int[amount];
for (i = 0; i < amount; i++) { // 保存所有单词开始和结束位置
start[i] = temp[i * 2];
end[i] = temp[i * 2 + 1];
}
return amount;
}
// 返回文本所有单词
// text 文本
private String[] saveWords(String text) {
String[] words = new String[wordAmount];
int i = 0;
text = text + '\n'; // 文本末尾添加非字母 以便最后字符为连续字母时可以正确得出单词
for (i = 0; i < wordAmount; i++) { // 记录所有单词位置
words[i] = text.substring(start[i], end[i]);
}
return words;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -