Попытка создать палиндром... как я могу сравнить строку "output.charAt(k)" с исходной строкой "output"?
public static void main(String[] args) {
String input = new String(JOptionPane.showInputDialog("Enter a string."));
String inputLow = input.toLowerCase();
String output = ""; //Blank string
for(int i = 0; i < inputLow.length(); i++) //For loop to continue through the entered string
{
if(inputLow.charAt(i) >= 'a' && inputLow.charAt(i) <= 'z') //If statement to check for appropriate characters only
{
output += inputLow.charAt(i); //Add only the appropriate characters to String output ('a' - 'z')
}
}
System.out.println(output);
//GETTING REVERSE STRING
int n = output.length() - 1;
String last = "";
for(int k = n; k >= 0; k--)
{
System.out.print(output.charAt(k));
//last = String.valueOf(output.charAt(k));
}
//System.out.println("");
//System.out.println(last);
}
Поэтому я пытался напечатать строку в последнюю очередь, но когда я откомментировал этот код, он выдает следующее:
heyman
namyeh
h
Но я хочу, чтобы он напечатал "Хейман" на третьей строке. (Я делаю только операторы print, чтобы проверить, правильно ли он это делает, и моя цель - сравнить String last с String и если они совпадают, то это палиндром, в противном случае это не так.)
Как я могу сделать это с помощью этого метода (или что-то вроде этого)?
1 ответ
Решение
Вы устанавливаете значение last для одного символа за раз. Вы в основном сбрасываете его каждый раз, поэтому он заканчивается на последнем символе обратной строки (который является первым символом).
Измените это на last = String.valueOf(output.charAt(k)) + last;