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

时间:2017-06-01 20:18:04

标签: java text java.util.scanner

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

作为

我喜欢 吃冰块 eam

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

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);
}
}

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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