0

これは私が取り組まなければならないものです。すでに書かれたものを保持する必要がありますが、回文を見つけるためにループと charAt() を使用する方法がわかりません。Entered は、端末ラインに文字列を書き込むために必要なコードであるため、何も入力できません。助言がありますか?

import java.io.*;
import java.util.*;


public class Palindrome
{
public static void main (String[] args) throws IOException
{
    try // WE WILL TALK ABOUT EXCEPTIONS EVENTUALLY - JUST PUT ALL YOUR CODE IN THIS TRY BLOCK
    {


        // --------------------------------------------------------------------------------------------------------


        if (args.length == 0) 
        {
            System.out.println("FATAL ERROR: Must enter a word on the command line!\n");
            System.exit(0);
        }


        String word = args[0];  


        boolean isPalindrome=true;  


        // --------------------------------------------------------------------------------------------------------







        // --------------------------------------------------------------------------------------------------------

        if (isPalindrome)
            System.out.println( word + " IS a palindrome." );
        else
            System.out.println( word + " NOT a palindrome." );

    }
    catch ( Exception e ) 
    {
        StringWriter sw = new StringWriter();
        e.printStackTrace(new PrintWriter(sw));
        System.out.println("EXCEPTION CAUGHT: " + sw.toString() );
        System.exit( 0 );
    }
} // END main


} //END CLASS Palindrome
4

2 に答える 2

1

すべて について、それが正しいi in 0..n/2ことを確認してください。(つまり、いずれかfalseの場合、回文ではありません。適切なキーワードを使用すると、この時点でループを停止できます。)word[i] == word[someIndexThatDependsOnI] word[i] == word[someIndexThatDependsOnI]

発見は読者にお任せしsomeIndexThatDependsOnIますが、それには文字列のサイズに関する何かが含まれます..

于 2012-09-20T22:13:50.123 に答える
0
public bool isPalindrom(String word) {
  for (int i = 0;i < word.length/2; i++) {
     if (word.charAt(i) != word.charat(word.length - i - 1)) {
      return false;
     }
  }
   return true;
}

ただし、今は目の前に IDE がないので、プログラミングの間違いをチェックする必要があります。

乾杯

于 2012-09-20T22:16:33.023 に答える