【发布时间】:2017-02-21 22:00:55
【问题描述】:
目标是获取用户输入的短语并告诉他们它是否是回文。它必须有一个数组和一个方法。我的数组和方法的返回结果有问题。我已经对其进行了一些编辑,但布尔部分仍然存在问题。无论我输入什么,我都会变得虚假。我还想确保如果输入了任何空格,它们将被删除。我已经尝试了 replaceAll 但无法使其正常工作。谢谢你的帮助。
import java.util.Scanner;
public class palindrome {
public palindrome() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner keyboard = new Scanner(System.in);
int another=1;
boolean results;
System.out.println("Please enter a phrase to be checked:");
String input = keyboard.next();
if (checkpalindrome(input))
System.out.println("Yes, the phrase is a palindrome");
else
System.out.println("No, the phrase is not a palindrome");
System.out.println("Would you like to try another one? \"1 or 0\"");
another = keyboard.nextInt();
}
public static boolean checkpalindrome(String input){
char array2 = 0;
char[] array1 = input.toCharArray();
StringBuilder sb = new StringBuilder(input.length());
for(int i=0; i<array1.length/2; i++)
{
array2 = array1[i];
array1[i]=array1[array1.length-1-i];
array1[array1.length-1-i]=array2;
}
System.out.println(input);
System.out.println(array1);
System.out.println(test.equals(array1));
return(input.equals(array1));
}
}
【问题讨论】:
-
你有什么问题?除了
checkpalindrome什么都不做。 -
checkpalindrome(input)应该返回一个布尔值,检查if(true)将始终为true,您可能想要执行以下操作:if (checkpalindrome(input))... -
从
char[] array1 = new char[80];行开始到最后的代码不在任何方法中——它不会编译 -
不确定在 java 中是否存在负数组索引,但如果是,是否所有负数组索引但奇数序列中的中间字母都等于它们(正对应物 - 1)?
标签: java arrays methods palindrome