【问题标题】:Checking Palindromes using an array使用数组检查回文
【发布时间】: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


【解决方案1】:

您也可以使用此方法检查字符串是否为回文。

public static boolean pallindrom(String S)
{
    char arr[] = S.toCharArray();

    int flag = 0;

    for(int i = 0 ; i < (arr.length+1)/2 ; i++)
    {
        if(arr[i] != arr[arr.length-1-i])
        {
            flag = 1;
            break;
        }
    }

    if(flag == 0)
        return true;
    else
        return false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 2019-03-18
    • 2021-05-24
    相关资源
    最近更新 更多