📄 wordcounter.java
字号:
/**
* 实验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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -