Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.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_String Concatenation - Fatal编程技术网

java中的字符串连接

java中的字符串连接,java,string-concatenation,Java,String Concatenation,我有一个需要连接的旧终端系统的输出。下面是一个输出示例 output1 = LINE ONE LINE TWO LINE THREE NO DATA LINE FOUR LINE FIVE LINE SIX % output2 = LINE FOUR % LINE FIVE LINE SIX LINE SEVEN NO DATA LINE EIGHT END 输出1= 第一行 第二行 第三行 没有数据 第四行 第五行 第6行% 输出2= 第四行% 第五行

我有一个需要连接的旧终端系统的输出。下面是一个输出示例

output1 = LINE ONE LINE TWO LINE THREE NO DATA LINE FOUR LINE FIVE LINE SIX % output2 = LINE FOUR % LINE FIVE LINE SIX LINE SEVEN NO DATA LINE EIGHT END 输出1= 第一行 第二行 第三行 没有数据 第四行 第五行 第6行% 输出2= 第四行% 第五行 第六行 第七行 没有数据 第八行 结束 可能有多达5个输出字符串需要连接。问题行之间可能存在重复(有些重复(例如:无数据)不应删除),因此简单的行比较是不可行的

correct answer should be: LINE ONE LINE TWO LINE THREE NO DATA LINE FOUR LINE FIVE LINE SIX LINE SEVEN NO DATA LINE EIGHT END 正确答案应该是: 第一行 第二行 第三行 没有数据 第四行 第五行 第六行 第七行 没有数据 第八行 结束 正在寻找java解决方案

有什么想法吗?谢谢。

提示:

读取每行输出

创建一个列表

检查

if (!"NO DATA".equals(thisLine) {
    if(!list.contains(thisLine)){ /* add to list */}
}else{
    /* add to list */
}

如果将数据作为一个大文件接收,则应首先查看扫描仪对象,如中所示:

File f = new File("thefile.txt");
Scanner s = new Scanner(new BufferedReader(new FileReader(f))).useDelimiter("END");
while (s.hasNext()) {
    String block = s.next(); // string will now contain all text between instances of "END"
    // process the text block by splitting on \n
    String[] lines = block.split("\n");
    StringBuilder output = new StringBuilder();
    for ( String line : lines ) {
       // process each line, checking for duplicates, appending to output.
    }
    // write your final output to a file, etc.
}

您是以流的形式接收数据,还是以单个大型摘录/文件的形式接收数据?不确定您的确切要求。你的琴弦是怎么来的?为什么不能将所有字符串添加到一个列表中呢?如上所述,它以单独的流形式出现。问题是每个字符串中都有重叠(重复数据)。我不知道如何删除重复的数据并连接字符串以生成完整的消息。逐行比较将不起作用,因为可能存在一些合法的重复行。因此,是否要删除一些重复行,而不是全部?在这种情况下,如果不是重复的话,我会建立一个你不想排除的东西的列表,然后在进行行比较时,我会检查该行是否是你允许重复的行。这个问题。。。重复行(无数据)可以是任何字符串,而不仅仅是“无数据”。没有办法预测重复的行是什么。你有什么可以确定的吗?唯一可以确定的是有多行重复。如上所述,它被输出到一个旧的终端系统。当数据对于屏幕来说太大时,会进行滚动输入,并显示剩余的数据。第一个输出底部的几行会在下一个输出中重复,具体取决于输出的长度。您可能希望跳过contains测试,只需使用它,不会删除任何合法的相同行以及重复行吗?我认为答案在于看到多条线之间的模式,而不仅仅是每条线。@rob345不,这是一个很好的方法。显然,您需要根据需要重定向扫描仪。您提到的多行中的模式是Jason的注释,
//处理每行,
。你可以把你需要的任何协议逻辑放进去。