wordcounter.java
来自「用StrinTokenizer类实现的单词统计问题实验」· Java 代码 · 共 71 行
JAVA
71 行
/**
* 实验7-题目2:单词统计问题,使用2种方法实现
*/
import java.util.StringTokenizer;
import javax.swing.JOptionPane;
public class WordCounter {
// 求一个字符串数组中最长字符串的长度
public static int maxStringLen(String[] strs) {
int maxLen = 0;
for (int i = 0; i < strs.length; i++) {
if (strs[i].length() > maxLen) {
maxLen = strs[i].length();
}
}
return maxLen;
}
//显示结果
public static void displayResult(int[] result) {
int count = 0;
System.out.printf("%4s %4s\n", "单词长度", "单词个数");
System.out.println("------------------");
for (int i = 0; i < result.length; i++) {
System.out.printf("%4d %4d\n", i + 1, result[i]);
count += result[i];
}
System.out.println("------------------");
System.out.println("合计:" + count);
}
//使用Tonkenizer类实现
public static void countWithTokenizer(String str) {
StringTokenizer st = new StringTokenizer(str);
int totalWords = st.countTokens();
String[] strs = new String[totalWords];
int i = 0;
while (st.hasMoreTokens()) {
strs[i++] = st.nextToken();
}
int[] result = new int[maxStringLen(strs)];
for (i = 0; i < strs.length; i++) {
result[strs[i].length() - 1]++;
}
//输出结果
displayResult(result);
}
//使用String类的split方法实现
public static void countWithSplit(String str) {
String[] strs = str.split(" ");
int[] result = new int[maxStringLen(strs)];
for (int i = 0; i < strs.length; i++) {
result[strs[i].length() - 1]++;
}
//输出结果
displayResult(result);
}
public static void main(String[] args) {
String str = JOptionPane.showInputDialog(null, "Input a String",
"Word Conuter", JOptionPane.QUESTION_MESSAGE);
System.out.println("使用StringTokenizer处理:");
countWithTokenizer(str);
System.out.println("使用String的split方法处理:");
countWithSplit(str);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?