繁体   English   中英

使用扫描仪读取文本文件,每10个字符插入换行符

[英]Read text file with scanner and insert line break every 10 characters

在使用java练习时遇到问题,我需要从文本文件中获取输入并打印出内容,但每10个字符插入一个换行符,例如它应该读入:我喜欢吃冰淇淋

我喜欢吃冰块

继到目前为止我目前的解决方案

public class practice {

public static void main(String[] args) {
Scanner input = new Scanner (practice.class.getResourceAsStream("hello.txt"));
String currentLine = "";
String lineTen = "\n";
int charCount = 0;

while (input.hasNext()) {
    currentLine =  input.nextLine();
    System.out.println(currentLine);
    //charCount++;
    for (int i = 0; i < currentLine.length(); i++) {
        if (currentLine.charAt(i) !=  ' ' && currentLine.charAt(i) != '\n') 
        {
            charCount++;
        }
        if (charCount > 20) {
        currentLine = ("\n");
        }
        }
    }
    System.out.println(currentLine);
    System.out.println(charCount);
}
}

任何建议,将不胜感激。

如果您在示例中计算它们,为什么要排除空格? 您应该在代码中删除它,您可以构建一个字符串,然后在完成时打印它,如下所示:

try (Scanner input = new Scanner(new File("test.txt"))) {
        String currentLine = "";
        String result = "";
        int charCount = 0;
        while (input.hasNext())
            currentLine += input.nextLine() + " ";
            //charCount++;
        for (int i = 0; i < currentLine.length(); i++) {
            if (currentLine.charAt(i) != '\n') { 
                if (charCount >= 20) {
                    result+= "\n" + currentLine.charAt(i);
                    charCount = 1;
                }
                else {
                    result += currentLine.charAt(i);
                    charCount++;
                }
            }
            else
                charCount++;
        }
        System.out.println(result);
    }

也可以使用上面的代码中所示的try-with-resources

输入:

I like to eat ice cream

输出:

I like to eat ice cre
am 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM