Java 创建一个类,将大写改为小写,将小写改为大写,并反转每个单词

Java 创建一个类,将大写改为小写,将小写改为大写,并反转每个单词,java,stream,Java,Stream,我必须创建名为StringLineWriter的类。 这个类应该将大写改为小写,将小写改为大写,并将每个单词反转 (例如,输入:1月,输出:YRAUNAj) 下面是我已经完成的两个类,我需要帮助创建StringLineWriter类 package Task5; import java.io.*; import java.text.DateFormatSymbols; public class Assignment5 { final static String filename =

我必须创建名为StringLineWriter的类。 这个类应该将大写改为小写,将小写改为大写,并将每个单词反转 (例如,输入:1月,输出:YRAUNAj)

下面是我已经完成的两个类,我需要帮助创建StringLineWriter类

package Task5;

import java.io.*;
import java.text.DateFormatSymbols;

public class Assignment5 {

    final static String filename = "output.txt";

    public static void main(String[] args) {
        try {
            FileWriter fileWriter = new FileWriter(filename);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

            StringWriter stringWriter = new StringLineWriter(bufferedWriter);
            for (String month : Assignment5Validator.getMonths()) {
                stringWriter.write(month);
            }
            bufferedWriter.close();

            FileReader fileReader = new FileReader(filename);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            if (Assignment5Validator.validate(bufferedReader)) {
                System.out.println("Solution VALID! :)");
            } else {
                System.out.println("Solution INVALID!");
            }
            bufferedReader.close();
        } catch (IOException ex) {
            System.out.println(ex);
        }
    }

}







/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Task5;

import java.io.BufferedReader;
import java.io.IOException;
import java.text.DateFormatSymbols;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Tony
 */
public class Assignment5Validator {
    final private static String[] months = {"January", "February", "March", "April", "May", "June", "July",
                                            "August", "September", "October", "November", "December"};
    final private static String[] monthsInversed = {
        "YRAUNAj", "YRAURBEf", "HCRAm", "LIRPa", "YAm", "ENUj", "YLUj", 
        "TSUGUa", "REBMETPEs", "REBOTCo", "REBMEVOn", "REBMECEd"
    };
    public static String[] getMonths() {
        return months;
    }

    static public boolean validate(BufferedReader reader) {
        String line;
        int i = 0;
        try {
            while (true) {
                line = reader.readLine();
                if (line == null || !line.equals(monthsInversed[i++])) {
                    return false;
                }
                if (i == months.length) {
                    return true;
                }
            }
        } catch (IOException ex) {
            System.out.println("Error while reading the file");
            return false;
        }
    }
}
这可能有助于:

private String reverse(String original) {
    String reversed = "";
    for (int letter = original.length() - 1; letter >= 0; letter--) {
        reversed = reversed + original.charAt(letter);
    }
    return reversed;
}

此外,对于大写到小写,只需在每个字母上使用
字符.isUpperCase(char)
,然后相应地使用
toLowerCase()
toUpperCase()

要基于JPeterson462的答案,您可以通过执行以下操作一次完成所有操作

private String reverseAndChangeCase(String original) {
  String reversed = "";
  for (int letter = original.length() - 1; letter >= 0; letter--) {
      char currentLetter = original.charAt(letter);
      if (Character.isUpperCase(currentLetter)) {
          currentLetter = Character.toLowerCase(currentLetter);
      } else {
          currentLetter = Character.toUpperCase(currentLetter);
      }
      reversed = reversed + currentLetter;
  }
  return reversed;
}