第一次在这里投递,所以我有这样的分配:我们编写一个代码,读取一个文件并将它写到另一个文件中,但大写除外,但是我们也需要添加一个语句来避免元音大写。
Main:
import java.io.FileNotFoundException;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
// write your code here
String iFilePath, oFilePath;
iFilePath = "C:\\Users\\flame\\Desktop\\New folder\\FileforRead.txt";
oFilePath = "C:\\Users\\flame\\Desktop\\New folder\\FileforWrite.txt";
UpperCaseFile ucf = new UpperCaseFile(iFilePath, oFilePath);
}
}UpperCaseFile类:
package com.company;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.lang.String;
import static java.lang.Character.toLowerCase;
public class UpperCaseFile {
public UpperCaseFile(String iFile, String oFile) throws FileNotFoundException {
String input;
String output;
File file;
file = new File(iFile);
Scanner inputFile = new Scanner(file);
PrintWriter outputFile = new PrintWriter(oFile);
while (inputFile.hasNext()) {
input = inputFile.nextLine();
output = input.toUpperCase();
outputFile.println(output);
char[] charArray = iFile.toCharArray();
for (int i = 0; i < charArray.length; i++)
{
if ( charArray[i] == 'a' || charArray[i] == 'e' ||
charArray[i] == 'i' || charArray[i] == 'o' ||
charArray[i] == 'u')
{
charArray[i] = Character.toLowerCase(charArray[i]);
}
inputFile.close();
outputFile.close();
}
}
}
}老实说,我似乎找不到错误,至少我的IDE没有这么说,它总是以退出代码1结束这个过程。非常感谢您的所有帮助。
发布于 2022-01-26 06:53:34
我增加了评论,你需要做什么,以及你在这里做了什么错事。试着编写我在评论中说过的代码。如果你面临任何问题,请在这里发表评论,这样会有所帮助。我没有为问题提供代码,因为它是赋值。
while (inputFile.hasNext()) {
input = inputFile.nextLine();
output = input.toUpperCase();
// here you will do, what you want to do.
// you will take output string and find vowel and convert those
// into lowercase. Keep in mind that all characters along with
// vowels are already capitals, so find all capital vowels and convert
// those to lowercase
// after above operation you can write into outputfile
outputFile.println(output);
// this is not doing what you are doing
/* char[] charArray = iFile.toCharArray();
for (int i = 0; i < charArray.length; i++)
{
if ( charArray[i] == 'a' || charArray[i] == 'e' ||
charArray[i] == 'i' || charArray[i] == 'o' ||
charArray[i] == 'u')
{
charArray[i] = Character.toLowerCase(charArray[i]);
}*/
//You need to close file after doing operations.
// these lines should not be in while
//inputFile.close();
// outputFile.close();
}https://stackoverflow.com/questions/70859075
复制相似问题