单词排序利用java编译出来
时间: 2024-09-29 17:05:16 浏览: 14
在Java中,对单词进行排序可以使用`Collections.sort()`方法配合`Comparator`接口或者`StringTokenizer`和`Arrays`类。这里是一个简单的例子,使用` Arrays.sort()`和自定义比较器来忽略大小写并按字典顺序排序:
```java
import java.util.Arrays;
public class WordSorter {
public static void main(String[] args) {
String[] words = {"banana", "Apple", "Cherry", "apple"};
Arrays.sort(words, (a, b) -> a.compareTo(b).toLowerCase());
for (String word : words) {
System.out.println(word);
}
}
}
```
在这个例子中,我们创建了一个匿名内部类,它实现了`Comparator<String>`接口,比较两个单词时先转换为小写,然后进行标准的字典顺序比较。
如果你想对字符数组进行排序,也可以直接使用`Arrays.sort()`:
```java
char[] charArray = {'b', 'a', 'n', ' ', 'A', 'p', 'p', 'l'};
Arrays.sort(charArray);
```
相关问题
利用java对单词按照单词首字母顺序进行升序排序
好的,以下是一个简单的Java程序,实现了对输入的字符串按照单词首字母顺序进行升序排序:
```java
import java.util.*;
public class WordSorter {
public static void main(String[] args) {
// 输入字符串
Scanner scanner = new Scanner(System.in);
System.out.print("请输入字符串: ");
String input = scanner.nextLine().toLowerCase();
// 提取单词
String[] words = input.split("[^a-zA-Z]+");
// 排序
Arrays.sort(words);
// 输出排序结果
System.out.println("单词按首字母升序排序结果:");
for (String word : words) {
System.out.println(word);
}
}
}
```
程序使用了Java内置的`Arrays.sort()`方法对单词数组进行排序。需要注意的是,程序中使用了正则表达式`[^a-zA-Z]+`来匹配非字母字符,以便提取出单词。
您可以将程序保存为WordSorter.java并编译运行,输入您想要排序的字符串即可得到排序结果。
读取文件内容,并对信息进行统计和整理: 1) “四级常用单词.txt”中记录了常用的3000多个单词,请统计该文档中所有英文字母(a-z,可不区分大小写)出现的次数和频率,并将统计结果按照字母出现频率由高到低排序后输出到目标文件“result.txt”中。 2) 说明: ① “四级常用单词.txt”的编码方式为UTF-8; ② 可用字符流读取,并用数组进行统计; ③ 只统计独立出现的单词,例如: 在上述一行中,只统计absolutely这个单词,单词的音标以及后面的词性ad.不纳入统计结果。Java语言编译
以下是Java语言的代码实现,可以读取“四级常用单词.txt”文件中的内容并统计每个字母出现的次数和频率,并将结果按照频率由高到低排序后输出到“result.txt”文件中。
```
import java.io.*;
import java.util.*;
public class WordCount {
public static void main(String[] args) {
try {
// 读取文件
File file = new File("四级常用单词.txt");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
// 统计字母出现次数
int[] count = new int[26];
String line;
while ((line = br.readLine()) != null) {
line = line.toLowerCase(); // 统一转换为小写字母
for (int i = 0; i < line.length(); i++) {
char c = line.charAt(i);
if (c >= 'a' && c <= 'z') {
count[c - 'a']++;
}
}
}
br.close();
// 计算字母出现频率
int total = 0;
for (int i = 0; i < 26; i++) {
total += count[i];
}
double[] freq = new double[26];
for (int i = 0; i < 26; i++) {
freq[i] = (double) count[i] / total;
}
// 按照频率排序
List<Character> list = new ArrayList<>();
for (char c = 'a'; c <= 'z'; c++) {
list.add(c);
}
Collections.sort(list, new Comparator<Character>() {
@Override
public int compare(Character c1, Character c2) {
return Double.compare(freq[c2 - 'a'], freq[c1 - 'a']);
}
});
// 输出结果到文件
FileWriter fw = new FileWriter("result.txt");
for (int i = 0; i < 26; i++) {
char c = list.get(i);
fw.write(c + ": " + count[c - 'a'] + " (" + String.format("%.2f", freq[c - 'a'] * 100) + "%)\n");
}
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
该程序首先读取“四级常用单词.txt”文件中的内容,然后遍历每个字符统计每个字母出现的次数。统计完毕后,根据出现次数计算每个字母出现的频率,并按照频率从高到低排序。最后将结果输出到“result.txt”文件中。