Java 创建一个类,将大写改为小写,将小写改为大写,并反转每个单词
我必须创建名为StringLineWriter的类。 这个类应该将大写改为小写,将小写改为大写,并将每个单词反转 (例如,输入:1月,输出:YRAUNAj) 下面是我已经完成的两个类,我需要帮助创建StringLineWriter类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 =
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;
}