任务是创建一个名为Sentence的类,它将用于表示英文文本的句子。它应具有以下功能:
私有实例变量,类型为String数组的单词,用于保存构成句子的单词。
具有单个String数组作为参数的构造函数。数组的元素将是句子中的单词。
一个toString()方法,它覆盖Object类中提供的继承的toString()。这应该返回一个由句子中的所有单词组成的单个字符串,由单个空格分隔,按照单词中的顺序排列。
一个方法,shortest(),返回包含句子中最短单词的String。 (如果有多个最短的单词,则返回其中一个单词)。
一个方法,longest(),返回包含句子中最长单词的String。 (如果有多个最长的单词,则返回其中一个单词)。 一个方法,meanLength(),返回句子中单词的平均长度。
一个方法sorted(),它返回在String数组中按字母顺序排序的句子中的单词。此方法不应修改数组字。 我的代码是这样的:
import java.util.Arrays;
public class Sentence {
private String[] words;
public Sentence(String[] words) {
this.words = words;
}
public String toString() {
String sentence = "";
for (String word : words) sentence += word + " ";
return sentence;
}
public String shortest() {
String shortString = words[0];
for (String string: words) {
if (string.length() < shortString.length()) {
shortString = string;
}
}
return shortString;
}
public String longest() {
String longString = words[0];
for (String string: words) {
if (string.length() > longString.length()) {
longString = string;
}
}
return longString;
}
public double meanLength(){
String[] strArray = Arrays.toString(words).split(" ");
int numWords = words.length;
int totalCharacters = 0;
for(int i = 0; i < numWords; i++)
totalCharacters = totalCharacters + words[i].length();
return totalCharacters/numWords;
}
public String[] sorted(){
Arrays.sort(words);
return words;
}
public static void main(String[] args) {
String[] wordList = {"A", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"};
Sentence text = new Sentence(wordList);
System.out.println(text);
System.out.println("Shortest word: " + text.shortest());
System.out.println("Longest word: " + text.longest());
System.out.printf("Mean word length:%5.2f\n",text.meanLength());
String[] sortedText = text.sorted();
System.out.print("Sorted: " + Arrays.toString(sortedText));
}
}
我不认为我的toString方法是正确的,也不是我的平均字长。有人可以向我解释实施这两种方法的正确方法吗?谢谢你:)。