读取文本文件,然后将大写转换为小写并写入文本文件

问题描述 投票:0回答:2

我正在尝试读入一个文件,然后写出到一个新文件,从而在新的输出文件中将输入文本文件中的大写字符更改为小写。该文件将在没有if循环良好的情况下进行读取和写入,然后当我尝试实现if循环以更改大小写的情况下,输出文件将显示空白。任何帮助将不胜感激。

import java.io.*;

public class TextFile {
    public static void main (String[] args) throws IOException {
                File file1 = new File("intext.txt");
                File file2 = new File("outtext.txt"); 
                char CharCounter = 0;       
                BufferedReader in = (new BufferedReader(newFileReader(file1)));
                PrintWriter out = (new PrintWriter(new FileWriter(file2)));

                int ch;
                while ((ch = in.read()) != -1)

                    if (Character.isUpperCase(CharCounter)){
                        Character.toLowerCase(CharCounter);
                        out.write(ch);
                    }

                in.close();
                out.close();
    }       
}
if-statement while-loop bufferedreader uppercase printwriter
2个回答
1
投票

您的CharCounter始终为0,并且您的比较不正确,请尝试如下操作:

import java.io.*;

public class TextFile {
    public static void main (String[] args) throws IOException {
            File file1 = new File("intext.txt");
            File file2 = new File("outtext.txt"); 
            char CharCounter = 0;       
            BufferedReader in = (new BufferedReader(newFileReader(file1)));
            PrintWriter out = (new PrintWriter(new FileWriter(file2)));

            int ch;
            while ((ch = in.read()) != -1){

                if (Character.isUpperCase(ch)){
                    Character.toLowerCase(ch);

                }
                out.write(ch);


            }
            in.close();
            out.close();
        }       
    }

0
投票

您的脚本中有几个问题:

  • 您需要捕获Character.toLowercase的结果-它以小写形式返回给定的字符,它不会修改提供的字符
  • 您将只写大写字符,原样

怎么样:

File file1 = new File("intext.txt");
File file2 = new File("outtext.txt");
BufferedReader in = (new BufferedReader(new FileReader(file1)));
PrintWriter out = (new PrintWriter(new FileWriter(file2)));

int ch;
while ((ch = in.read()) != -1) {
    if (Character.isUpperCase(ch)) {
        ch = Character.toLowerCase(ch);
    }
    out.write(ch);
}

in.close();
out.close();
© www.soinside.com 2019 - 2024. All rights reserved.