1

我有一个班级作业,我必须制作一个程序来获取现有文件并将所有字母转换为大写。以下是部分代码(特别是循环):

 // Read lines from the file until no more are left.
  while (inputFile.hasNext())
  {
      // Read the next name.
     String friendName = inputFile.nextLine();

      // Need line to make all letters uppercase

  }

  System.out.print("Enter the saved file name: ");
  String filename2 = keyboard.nextLine();

当我现在运行它时:我能够打开第一个文本文件并创建第二个 txt 文件,但新文件中没有字母。

4

6 回答 6

2

你可以这样尝试:

File file1 = new File("initial.txt");
File file2 = new File("final.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.isLowerCase(ch))
   {
        ch=Character.toUpperCase(ch);// convert assign variable
   }
out.write(ch);
}
in.close();
out.close();
于 2014-03-11T06:42:21.323 回答
1

试试String upper = friendName.toUpperCase()。现在upper字符串的所有字符都是大写的。根据需要使用它。参考字符串 API

于 2014-03-11T06:36:05.937 回答
0
friendName = friendName +System.lineSeparator()+friendName.toUpperCase();

//while循环结束后,将friendName的内容写入你的输出文件。

于 2014-03-11T06:40:12.037 回答
0

使用FileUtils readFileToString()writeFileToString()做简单的工作,

String content = FileUtils.readFileToString(new File(FILE_PATH));
FileUtils.writeStringToFile(new File(FILE_PATH), content.toUpperCase());
于 2014-03-11T06:40:05.547 回答
0

试试这个演示代码:

       import java.io.*;
       import java.util.*;
       class m{

  public static void main (String[] args) {
     try
    {
     FileReader fr = new FileReader("file.java");
     BufferedReader br = new BufferedReader(fr);
     PrintWriter out = (new PrintWriter(new FileWriter("mahesh.java")));
     String s="";
   while((s = br.readLine()) != null) 
   {
      out.write(s.toUpperCase()+"\n");
    }
  out.close();
  }
    catch(Exception e)
    {
     e.printStackTrace();
    }
   }

  }
于 2014-03-11T06:54:49.097 回答
0

查看String 类文档并尝试找到将字符串值更改为全部大写的方法。

您还需要获取while循环上方的输出文件名,然后写入循环内的输出文件,因为对于循环的每次迭代,前一次迭代的字符串值都会丢失。

于 2014-03-11T06:36:47.707 回答