【发布时间】:2015-09-12 14:28:58
【问题描述】:
我有一个字符串 s1(包含很多英文句子),一个字符串列表 l1(包含公共汽车、房屋、火车、火车引擎、火车引擎的生命等元素(单词数永远不会大于 3)等)和字符串 l2(类似于 l1)和整数 n 的列表。
对于 l1 的每个元素,我必须在 s 中找到 l1 或 l2 的其他元素(l1 的元素可以在 s 中多次出现,我们必须为每次出现都找到它)使得它们的距离(距离在字数,例如:我有 xyz。在这种情况下,I 和 xyz 之间的距离是 2) 从 l1 的元素到 l1 的元素两侧的 n 小于或等于 n。这些单词/短语(l1 或 l2 的元素)将存储在 java 中的列表中。
e.g.:
Input:
s= i am asd fgh and studying in zxc vbn bnmkl. i am 100 years old.(may contain other symbols too)
l1= i
l2=asd, fgh, zxc, vbn
n=3.
Output:
asd,fgh,zxc,vbn
for(int j=0;j<l1.size();j++){
String s1=l1.get(j);
int index = s.indexOf(s1);
while(index >= 0) {
System.out.println(index);
for(int k=0;k<n;){
// how to detect the words before and after that element of l1 such that distance is <= n on either side in a passage and they are contained in either l1 or l2.
}
index = s.indexOf(s1, index+1);
}
}
谁能帮我实现这个?
【问题讨论】:
-
我们不会为您生成代码。开始编码。回来,当你有一些代码并就你不理解的部分提出具体问题。
-
你应该看看正则表达式。
-
我已经添加了代码并添加了我需要帮助的部分(作为评论)。
-
而不是问“你能帮我实现这个吗?”这只是一种亲切的说法“你能为我做吗?”,我们建议您尝试和试验您的代码并提出一个与疑问直接相关的具体问题。并不是我们没有帮助,而是这样您的问题和他们的回答也会对其他人有所帮助。
标签: java arrays string arraylist