簡體   English   中英

回文程序調試

[英]Palindrome program debugging

該問題已解決,但是我需要為其中的一段代碼創建方法方面的幫助。 任何輸入將不勝感激。 我嘗試使用void方法,但是沒有用。 我強調了我希望代碼成為一種方法的地方。

import java.util.*;
 public class Finalpal {

public Finalpal() {
    // TODO Auto-generated constructor stub
}

public static void main(String[] args) 
{
Scanner scan = new Scanner(System.in);

    String word;
    int len, counter = 0;

    System.out.println("Enter your word");
    word = scan.next();

    word = word.toUpperCase();

    len = word.length();

    char array[] = new char[len];
    char reverse[] = new char[len];

    for (int i=0; i < len; i++)
    {
        array[i] = word.charAt(i);
    }
    for (int j=len-1; j>=0; j--)
    {
        array[counter] = word.charAt(j);
        counter++;

    }

    // This part needs to be a method
    for (int k = 0; k < len; k++)
    {
        if (array[k] != reverse[k])
        {
            System.out.println("Not a palindrome");
            break;
        }
        if ((array[k] == reverse[k]) && (k == len -1))
        {
            System.out.println("It is a palindrome");
        }
    }

}

}

您沒有填寫reverse數組

嘗試

for (int j=len-1; j>=0; j--)
{
    reverse[counter] = word.charAt(j);
    counter++;

}

您已使用array [counter]而不是rev​​erse [counter]。 您從未填充過反向數組

有一種方法可以做到這一點,而無需創建與原始字符串進行比較的反向字符串。

如果我知道字符串的長度,我可以做一個循環,檢查兩端的字符以查看它們是否相同並向內移動:

[a] [b] [c] [b] [a]

Loop 0: a = a
Loop 1: b = b
Loop 2: c = c
Result: Palindrome!

您需要的功能:

int len = String.length();
char c = String.charAt(int);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM