2

私のプログラムは、単語またはフレーズが回文であるかどうかをテストするためにチェックします (「レースカー」など、前後に同じように読みます)。私が抱えている問題は、誰かが「レースカー」に入って実際にテストした後です。以下のコードでは、「racecar」と入力して実行すると、Java が正しい答えを返すので、そこにいることがわかります。しかし、コンソールに入力する限り、何が欠けていますか。私のコードは大丈夫だと思いますが、何かが足りないか、間違った場所にあるのでしょうか? 何かが欠けていない限り、新しい答えを実際に探しているわけではありませんが、可能であれば、コードを正しい領域に移動するプロが立ち往生しています!

import java.util.*; 

public class Palindrome { 

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

    System.out.println("Enter a word or phrase: ");  **//this asks user for input but doesn't check for whether or not it is a palindrome**
    myInput = in.nextLine(); 
    in.close(); 

    System.out.println("You entered: " + myInput); 
}   

{
    String s="racecar";  **//I can type a word here and it works but I need**
    int i;               **//I need it to work where I ask for the input** 
    int n=s.length(); 
    String str="";  

    for(i=n-1;i>=0;i--)  
        str=str+s.charAt(i);  

    if(str.equals(s))  
        System.out.println(s+ " is a palindrome");  

    else  System.out.println(s+ " is not a palindrome"); }

}

私はプログラミングが初めてなので、私が得たものが大丈夫であることを願っています。回文テストが機能することはわかっていますが、コンソールに入力するところからテストするのを手伝ってほしいだけです。ありがとう

4

2 に答える 2

1

すべて問題ないように見えますが、ループは、がパリンドロームであるforかどうかを確認していることを示しています。smyInput

今、あなたがする必要があるのは、のすべての出現を置き換えてsmyInputあなたのプログラムが正しく動作するかどうかを確認することです。

ヘッドアップとして、あなたのプログラムは「マダム・イム・アダム」というフレーズを回文として認識しません。

これは宿題であるため、(コードを変更せずに)フレーズを認識するための1つの可能なアプローチはString#replaceAll、文字列内のスペース(使用可能)を削除してから、回文チェックを実行することです。

于 2010-04-19T00:58:17.410 に答える
1

まず第一に、指定したコードはコンパイルされません。それはさておき。あなたが探しているのは「ユーザー入力の読み方」のようです

簡単な言葉で行う必要があることは次のとおりです。

import java.util.Scanner;
...
...

Scanner in = new Scanner(System.in);

// Reads a single line from the console 
// and stores into variable called "s"
String s= in.nextLine();
in.close();

次に、回文の「s」をチェックするコードを続行します。

于 2010-04-19T01:53:49.630 に答える