?? 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 + -