我们说我们有一个单词列表:
public class Flower
{
private int randomRoses;
private int randomTulips;
private int randomOrchids;
public ArrayList <Integer> flowerArray;
public Flower()
{
r = new Random();
t = new Random();
o = new Random();
int randomRoses = (r.nextInt(10) + 0);
int randomTulips = (t.nextInt(10) + 0);
int randomOrchids = (o.nextInt(10) + 0);
flowerArray = new ArrayList<Integer>
}
public void add2Array ()
{
flowerArray.add(randomRoses); //flowerArray[0] is the # of roses
flowerArray.add(randomTulips); //flowerArray[1] is the # of tulips
flowerArray.add(randomOrchids); //flowerArray[2] is the # of orchids
}
public void printArray()
{
System.out.println(flowerArray[0]);
}
现在我有另一个字符串变量:
words = c("happy","like","chill")
我想检查单词中哪个单词具有s中的匹配部分。 所以s可以是&#34; happyTime&#34;,&#34; happyFace&#34;,&#34; happyHour&#34 ;,但只要有&#34;快乐&#34;在那里,我希望我的结果返回单词的索引&#34; happy&#34;在字符串向量字。
此问题与帖子中提出的问题相似但不完全相同:Find a string in another string in R。
答案 0 :(得分:2)
您可以使用if(variableName)
doSomething();
来浏览您使用sapply
搜索的每个字词,以确定该字词是否出现在grepl
中:
s
如果sapply(words, grepl, s)
# happy like chill
# TRUE FALSE FALSE
只是一个单词,那么带有s
的{{1}}会返回一个逻辑向量,您可以使用该向量来确定匹配的单词:
sapply
当grepl
包含多个单词时,带有words[sapply(words, grepl, s)]
# [1] "happy"
的{{1}}会返回一个逻辑矩阵,您可以使用列总和来确定哪些单词至少出现一次:
s
答案 1 :(得分:1)
以下是使用stri_detect
stringi
的选项
library(stringi)
words[stri_detect_regex(s, words)]
#[1] "happy"