Что касается приведенного ниже кода, у меня возникла проблема, когда все работает нормально, но я не получаю желаемый результат.
Код должен принимать пользовательский ввод и печатать его, но все буквы в обратном порядке. Однако даже если toggleCase работает без проблем, когда вход возвращается в toggleStringCase, он возвращается к тому, что был до отправки в toggleCase.
Мне трудно понять, почему это происходит.
Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении.
В идеале я не хочу, чтобы вы сказали мне ответ, а просто помогите мне выбрать правильный путь для решения этой проблемы.
package loopy;
import java.io.*;
public class loopy {
public static void main (String[] args) throws IOException {
// TODO: Use a loop to print every upper case letter
for (int i = 65; i < 91; i++) {
System.out.println((char)i);
}
// TODO: Get input from user. Print the same input back but with cases swapped. Use the helper functions below.
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String input = in.readLine();
in.close();
toggleStringCase(input);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
out.write(input);
out.close();
}
//Takes a single Character and reverse the case if it is a letter
private static char toggleCase(char c) {
int asciiValue = (int) c;
if (asciiValue > 96 && asciiValue < 123){
asciiValue = asciiValue - 32;
}
else if (asciiValue > 64 && asciiValue < 91){
asciiValue = asciiValue + 32;
}
else {
}
c = (char) asciiValue;
return c;
}
// Splits a string into individual characters that are sent to toggleCase to have their case changed
private static String toggleStringCase(String str) {
String reversedCase = new String();
for (int i = 0; i < str.length(); i++) {
char letter = str.charAt(i);
toggleCase(letter);
reversedCase = reversedCase + letter;
}
str = reversedCase;
return str;
}
}