[英]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]而不是reverse [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.