Java 如何将随机字数组过滤为哈希标记数组?
例如,Java 如何将随机字数组过滤为哈希标记数组?,java,lambda,Java,Lambda,例如,[“ab”、“SomeHash”、“qwlerkj”、“sdfs”、“sdfs”、“anotherhash”]到[“SomeHash”、“anotherhash”],或包含[“SomeHash”、“anotherhash”的数组列表 我尝试使用lambda4j,但它总是给我一个空列表 List<String> hashtagWords = select(statusText.split(" "), hasItemInArray(startsWith("#"))); List
[“ab”、“SomeHash”、“qwlerkj”、“sdfs”、“sdfs”、“anotherhash”]
到[“SomeHash”、“anotherhash”]
,或包含[“SomeHash”、“anotherhash”的数组列表
我尝试使用lambda4j,但它总是给我一个空列表
List<String> hashtagWords = select(statusText.split(" "), hasItemInArray(startsWith("#")));
List hashtagWords=select(statusText.split(“”),hasItemInArray(startsWith(“#”);
我使用的是Java7,所以我不能使用Java8功能。
请帮帮我。可能是老派,但能胜任这项工作
List<String> list = new ArrayList<String>();
List<String> hashTagList = new ArrayList<String>();
list.add("ab");
list.add("#SomeHash");
list.add("qwlerkj");
list.add("!@#!@");
list.add("sdfs");
list.add("#anotherhash");
Iterator<String> listItr = list.iterator();
while (listItr.hasNext()){
String element = listItr.next();
if(element.startsWith("#")){
hashList.add(element);
}
}
您在标题中说您有一个随机单词数组,但您的代码示例使其看起来像是一个
字符串
(statusText
)。我假设你已经有了一个数组。(您可以使用String.split()
或任何需要的工具来获取它。)
在Java 7中,您可以这样做:
List<String> hashTagWords = new ArrayList<>();
for (String word : statusWords) {
if (word.startsWith("#")) {
hashTagWords.add(word);
}
}
return hashTagWords;
为什么不使用简单循环?迭代所有元素,使用哈希条件对它们进行测试,若元素通过测试,则将其添加到新的结果列表中<代码>列表hashtagWords=new ArrayList();for(String s:statusText.split(“”){if(s.startsWith(“#”)hashtagWords.add(s);}也可以在原始字符串上执行正则表达式。@Pshemo我想用一种奇特的方式来执行,因为我需要向人们显示此代码。请定义奇特。请在你的问题中提出这个要求。我想用一个简洁的一行,但我想我会用一个循环。
List<String> hashTagWords = new ArrayList<>();
for (String word : statusWords) {
if (word.startsWith("#")) {
hashTagWords.add(word);
}
}
return hashTagWords;
return Arrays.stream(statusWords)
.filter(word -> word.startsWith("#"))
.collect(Collectors.toList());