首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎么能只打印一个字符串一次?

我怎么能只打印一个字符串一次?
EN

Stack Overflow用户
提问于 2018-12-06 04:22:45
回答 1查看 192关注 0票数 1

只需打印一次Unterschiede gefunden:

代码语言:javascript
复制
while(sc.hasNextLine() || sc1.hasNextLine()) {
        i++;

        try {
            text1 = sc.nextLine();``
            text2 = sc1.nextLine();
        if(!text1.equals(text2)){


            System.out.println("Unterschiede gefunden:");
            System.out.printf("Zeile %d :\n",i);
            System.out.println(text1);
            System.out.println(text2);
        }
        }catch(NoSuchElementException nse) {
            text2 = " ";
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2018-12-06 06:09:13

检测一个文本文件是否与另一个文本文件不同。一旦您检测到一个文件行与另一个文件行不同,就通知用户(就像您正在做的那样),并且从您的IF代码块中将从while循环中中断,以便停止处理文件行,例如:

代码语言:javascript
复制
if(!text1.equals(text2)){
    System.out.println("Unterschiede gefunden:"); // Difference Detected!
    System.out.println("Zeile " + i + ":\n");     // At file line #.
    System.out.println("File A: " + text1);       // Text line in File A.
    System.out.println("File B: " + text2);       // Text line in File B.
    break;                                        // Break out of the WHILE loop.
}

您还考虑到文件A可能比文件B包含更多或更少的行,这很好,但此时您也应该真正退出while循环,因为您现在确定文件A不同于文件B,例如:

代码语言:javascript
复制
// These two variables are used to see which file
// contains more of fewer lines.
int fileACount = 0;
int fileBCount = 0;

// Read the two files...
while (sc.hasNextLine() || sc1.hasNextLine()) {
    try {
        String fileAText = sc.nextLine();
        fileACount++;
        String fileBText = sc1.nextLine();
        fileBCount++;
        if (!fileAText.equals(fileBText)) {
            System.out.println("Unterschiede gefunden:");
            System.out.printf("Zeile %d :\n", fileACount);
            System.out.println(fileAText);
            System.out.println(fileBText);
            break;
        }
    }
    catch (NoSuchElementException nse) {
        // Using a Ternary Operator below so as to
        // indicate which file contains more lines.
        String fileWithMoreLines = fileACount > fileBCount ? "A" : "B";
        System.out.println("Files are different! File " + 
                fileWithMoreLines + " contains MORE Lines.");
        break;
    }
}

别忘了关闭你的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53640143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档