⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wordanalysis.java

📁 实现英文的拼写检查
💻 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 + -