我正在练习一个字符串回文。我的代码是否在我的for循环中?
public static void main (String args[])
{
String word = JOptionPane.showInputDialog("Input a String:");
String finalword = word.replaceAll(" ","").toLowerCase();
for (int x = word.length(); x >= word.length()-1; x--)
{
finalword.charAt(x);
}
if(word.equals(finalword))
{
JOptionPane.showMessageDialog(null, "Palindrome");
}
else
{
JOptionPane.showMessageDialog(null, "Not a Palindrome");
}
}
谢谢你,并致以最诚挚的问候。
答案 0 :(得分:2)
当你启动x时,该值将是单词的长度。它应该是
int x = word.length() - 1
答案 1 :(得分:2)
您需要处理的实际字符串是finalword,因为它的长度对您很重要。
为简单起见,请使用两个临时数组,如tempStart和tempLast,两者的长度必须与(finalword.length / 2)相同,不要担心字符串有偶数或奇数个字符。
使用带有两个变量的循环,如下所示。
for(int x = 0, y=finalword.length(); x<finalword.length() / 2; x++,y--){
// check tempStart and tempLast has same chars.
// I hope you know rule for palindrome.
}
如果这两个数组(tempStart和tempLast)匹配,则其匹配,否则不匹配。
我希望这会对你有所帮助。如果不这样做,请告诉我你需要更多的帮助。
答案 2 :(得分:0)
int x = word.length(); 会给你字符数组的长度,即
"Racecar".length();
// 7
然后在数组[7]中,但你真的想要6