Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 合并共享单词链接的行_Java_Arrays_String - Fatal编程技术网

Java 合并共享单词链接的行

Java 合并共享单词链接的行,java,arrays,string,Java,Arrays,String,所以我在java中遇到了一个小问题。我有点像 "Victor Fleming" "Gone With" "With The" "The Wind." 所以这个句子实际上应该是这样的 "Victor Fleming" "Gone with the wind." 因此,我希望通过相邻和相同的单词形成一个单独的句子。如果没有检测到相邻的相同单词,那么句子将被分开,如“

所以我在java中遇到了一个小问题。我有点像

"Victor Fleming" 
"Gone With" 
"With The" 
"The Wind."  
所以这个句子实际上应该是这样的

"Victor Fleming" 
"Gone with the wind."
因此,我希望通过相邻和相同的单词形成一个单独的句子。如果没有检测到相邻的相同单词,那么句子将被分开,如“Victor Fleming”案例中的情况,其中Fleming与Gone不同,因此新句子开始。到目前为止,我写的是:

List separatedText=new ArrayList();
int i=0;
而(i
我们可以将句子存储在字符串数组中,然后循环遍历每个句子

在循环中,我们检查最后一个项目的最后一个字(通过使用
.split(“”
)将其拆分为一个数组,然后获取最后一个元素)是否等于当前项目的第一个字。如果是,我们首先删除当前项的第一个单词,然后将其附加到
StringBuilder

如果不是,则将StringBuilder的值追加到列表中,追加当前元素,然后继续

String[] sentences = {"Victor Fleming", "Gone With", "With The", "The Wind."};
List<String> newsentences = new ArrayList<>();
StringBuilder str = new StringBuilder();
for(int i = 0; i < sentences.length; i++) {
    String cur = sentences[i];
    if(i != 0) {
        String[] a = sentences[i-1].split(" ");
        String[] b = cur.split(" ");
        String last = a[a.length-1];
        String first = b[0];
        if(last.equalsIgnoreCase(first)) {
            str.append(cur.substring(first.length()));
        }else {
            newsentences.add(str.toString());
            str = new StringBuilder();
            str.append(cur);
        }
    }else {
        str.append(cur);
    }
}
newsentences.add(str.toString());
System.out.println(Arrays.toString(newsentences.toArray()));

你想要的行为是什么?你现在的描述太混乱了。问题:你怎么知道“维克多·弗莱明”应该作为一个“句子”放在一起?“维克多”和“弗莱明”是两个相邻的词,所以它们不应该分开吗?就像上面的例子:“维克多·弗莱明随风而去”。我想把“Victor Fleming”和“Gone with the Wind”分成两个独立的句子,因为可以看出,“Gone with the Wind”可以合并成“Gone with the Wind”,因为在一个句子中相邻的重复单词,而Victor Fleming不能。所以我想做的是得到a+1和a+2位置上的单词,看看它们是否相同。如果它们不是,那么句子将只由位置a和位置a+1上的单词组成(因为无法连续合并重复的单词)。@Code学徒我的错,我将这些单词放在单独的行上,如“Victor Fleming”“Gone With”“With the”等。我知道这一对中的第一个单词不能和第二个单词相同。然而,这对中的第二个单词可能与下一对中的第一个单词相同。当我说“我的”时,我把问题写错了bad@Simm你应该编辑问题以显示正确的输入,而不是在答案中描述它。我已按我的理解对其进行了编辑。如果我有任何误解,请随时重新编辑。
[Victor Fleming, Gone With The Wind.]