使用JAVA语言完成实验,以下是实验要求,提供源代码 要求1:定义一个用于字符串处理的类,包含一个成员变量String s,以及以下四个成员方法和main方法,定义该类的构造函数,构造函数接受从键盘输入的一行字符串并赋值给成员变量s。在main函数中首先创建该类的对象,然后分别调用下面四个方法处理字符串,并输出处理结果。 要求2:将字符按Unicode字典顺序排序后输出; 提示:将字符串转换为字符数组(字符串变量.toCharArray()),然后使用Arrays类的sort方法对数组排序。 要求3:统计每个字符出现的次数和出现的位置; 提示:先将字符转换为字符数组(参照①),然后参照课本Map接口的实例。 要求4:统计含有的单词个数; 提示:利用StringTokenizer。 StringTokenizer st = new StringTokenizer(s); 要求5:正向和反向输出单词。 提示: String的split方法。
时间: 2024-03-27 13:35:41 浏览: 97
以下是JAVA语言完成字符串处理实验的源代码:
```java
import java.util.*;
public class StringProcessor {
private String s;
// 构造函数接受从键盘输入的一行字符串并赋值给成员变量s
public StringProcessor() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
s = scanner.nextLine();
}
// 将字符按Unicode字典顺序排序后输出
public void sortAndPrint() {
char[] charArray = s.toCharArray();
Arrays.sort(charArray);
System.out.println("按Unicode字典顺序排序后的字符:");
System.out.println(charArray);
}
// 统计每个字符出现的次数和出现的位置
public void countAndPrint() {
Map<Character, List<Integer>> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (!map.containsKey(c)) {
map.put(c, new ArrayList<>());
}
map.get(c).add(i);
}
System.out.println("每个字符出现的次数和出现的位置:");
for (Map.Entry<Character, List<Integer>> entry : map.entrySet()) {
System.out.println(entry.getKey() + " 出现了 " + entry.getValue().size() + " 次,位置分别为:" + entry.getValue());
}
}
// 统计含有的单词个数
public int countWords() {
StringTokenizer st = new StringTokenizer(s);
int count = st.countTokens();
System.out.println("单词个数为:" + count);
return count;
}
// 正向和反向输出单词
public void printWords() {
String[] words = s.split(" ");
System.out.println("正向输出单词:");
for (String word : words) {
System.out.print(word + " ");
}
System.out.println();
System.out.println("反向输出单词:");
for (int i = words.length - 1; i >= 0; i--) {
System.out.print(words[i] + " ");
}
System.out.println();
}
public static void main(String[] args) {
StringProcessor sp = new StringProcessor();
sp.sortAndPrint();
sp.countAndPrint();
sp.countWords();
sp.printWords();
}
}
```
在main函数中,首先创建了一个StringProcessor对象,然后分别调用了sortAndPrint、countAndPrint、countWords、printWords四个方法对字符串进行处理,并输出处理结果。其中sortAndPrint方法将字符按Unicode字典顺序排序后输出,countAndPrint方法统计每个字符出现的次数和出现的位置,countWords方法统计含有的单词个数,printWords方法正向和反向输出单词。
注意:本程序中的单词是以空格为分隔符进行划分的,如果字符串中含有标点符号等其他字符,需要根据实际情况进行处理。
阅读全文