我必须为WebPageData编写一个名为getWordsInString()的公共类方法。该方法采用一个名为text的参数,该参数应为String类型。 getWordsInString()的目的是返回一个由文本引用的字符串中的distict词组成的集合。
首先使用您在Javadoc中找到的String类的方法,该类将根据字符串参数的值将任意字符串分成多个部分。使用此方法将文本引用的字符串拆分为单词数组,并将此数组分配给名为wordArray的局部变量。该方法应声明一个能够引用一组字符串的局部变量,并为其分配一个合适类的空实例。接下来迭代wordArray并将其元素添加到新创建的集合中,最后返回应该包含文本引用的字符串中的不同单词的集合。
import java.util.*;
public class WebPageData {
private Set<String> wordSet;
private Set<String> url;
public Set<String> getUrl() {
return url;
}
public Set<String> getWordSet() {
return wordSet;
}
public static String getWordsInString(text) {
return test;
public String[] split(String regex) {
private String[] wordArray;
for (String eachText : numSet) {
hashSet.add(text);
)
}
我正在努力解决这个问题,请帮忙吗?
答案 0 :(得分:11)
你只需要一行来完成所有事情:
Set<String> set = new HashSet<String>(Arrays.asList(text.split(" +")));
或者在java 8中:
Set<String> set = Arrays.stream(text.split(" +")).collect(Collectors.toSet());
答案 1 :(得分:1)
您的代码中有很多语法错误:
要在语法上正确,你应该写一些类似的东西:
import java.util.*;
public class WebPageData {
private Set<String> wordSet;
private Set<String> url;
public Set<String> getUrl() {
return url;
}
public Set<String> getWordSet() {
return wordSet;
}
public static String getWordsInString(text) {
String[] wordArray;
return test;
}
public String[] split(String regex) {
String[] wordArray;
Set<String> hashSet = new HashSet<String>();
for (String eachText : numSet) {
hashSet.add(text);
}
return null;
}
}
现在这在语法上是正确的,但不是你想要的。
这是一个正确的getWordsInString方法:
public Set<String> getWordsInString(String text) {
String[] wordArray = text.split(" ");
Set<String> set = new HashSet<String>();
for (String currentWord : wordArray) {
set.add(currentWord);
}
return set;
}
这可能是一种不那么冗长的方式(但这不是你需要做的):
public Set<String> getWordsInString(String text) {
List<String> words = Arrays.asList(text.split(" "));
return new HashSet(words);
}
我更喜欢第二个版本,因为它集中了您想要的,将您的数组转换为集合。另一个进入迭代完整列表的细节。当性能成为一个重要问题时,你会更喜欢第一个版本。
答案 2 :(得分:0)
public Set<String> getWordSet(String input) {
String[] words = input.split(" ");
Set wordSet=new Set();
for(int i =0; i<words.length;i++){//length or size() :S im not sure
wordSet.add(words[i]);
}
return wordSet;
}
我不测试它
答案 3 :(得分:0)
public Set<String> getWordSet(String input) {
return new HashSet<String>(Arrays.asList(input.split(" ")));
}
创建(临时)列表存在性能损失,但对于典型情况,它应该不是问题。