0

我很难触发我的“if”语句。当我输入 CharSequence 应该搜索的“我喜欢我的‘任何东西’”时,代码会从 else 语句中排除错误。我试图通过尝试使用 CharSequence 仅识别一个字母来查看 contains 方法是否没有读取空格。那没有帮助。我还尝试将我的 contains 方法更改为布尔值,如果布尔值为真,则运行 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();
        }
    }

}

输出:

您好你叫什么名字?珍妮特你好珍妮特。告诉我你喜欢自己什么?请用“我喜欢我的”这句话来掩饰你喜欢自己的什么。我喜欢我的胸部错误:用户没有使用“我喜欢我的”输入格式

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"或更改searchString为“我喜欢我的”。

于 2016-07-02T11:26:18.860 回答
0

利用

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

代替

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

那么用户输入什么情况都没有关系。

于 2016-07-02T11:45:31.567 回答