0

「if」ステートメントをトリガーするのに苦労しています。CharSequence が検索するはずの "I like my 'anything'" を入力すると、コードは else ステートメントからエラーを追い出します。CharSequence を使用して 1 文字だけを識別しようとすることで、contains メソッドが空白を読み取っていないかどうかを確認しようとしました。それは役に立ちませんでした。また、contains メソッドをブール値に変更し、ブール値が true の場合は if ステートメントを実行しようとしました。それもうまくいきませんでした。私は他のコードを少し検索しましたが、似ているようです。Eclipse は、私が始めたばかりのエラーにフラグを立てていません。コードをクリーンアップする方法や、より適切に機能する可能性のあるメソッドに関する追加のヒントがある場合。建設的な批判をお願いします。

import java.util.Scanner;

public class hello {

    public static void main(String args[]) {

        Scanner scan = new Scanner(System.in);
        try {
            System.out.println("Hi, what is your name?");
            String name1 = scan.next();
            System.out.println("Hello "+ name1 + ". Tell me what you like about yourself?\n"
                    + "Please pretext what you like about yourself with the phrase 'I like my'.");
            String selfEsteem = scan.next();
            CharSequence searchString = "I Like my";

            if (selfEsteem.contains(searchString)) {
                selfEsteem = selfEsteem.replace("my", "your");
                System.out.println(selfEsteem + "also.");
            } else {
                System.err.println("Error: User did not use 'I like my' input format");
            }
        } finally {
            scan.close();
        }
    }

}

出力:

こんにちは、あなたの名前はなんですか?ジャネット こんにちはジャネット。自分の好きなところを教えてください。「I like my」というフレーズを使って、自分の好きなところを口実にしてください。I like my boobs エラー: ユーザーは「I like my」入力形式を使用しませんでした

4

3 に答える 3

0

あなたsearchStringは ですが"I Like my"、テキストには があります"I like my"。したがって、ユーザーは小文字を入力し、大文字と小文字containsが区別されるため、見つけられないと思います。

への変更:

CharSequence searchString = "I like my";
于 2016-07-02T11:25:46.667 に答える
0

"I Like my"あなたのエラーメッセージがそうあるべきだと言っている間、あなたは を探しています'I like my'

大文字と小文字が区別されます。

入力するか、「I like my」に"I Like my"変更します。searchString

于 2016-07-02T11:26:18.860 に答える
0

使用する

if (selfEsteem.containsIgnoreCase(searchString))
    ...

それ以外の

if (selfEsteem.contains(searchString))
    ...

次に、ユーザーが入力する大文字と小文字は関係ありません。

于 2016-07-02T11:45:31.567 に答える