【问题标题】:Java, Can I use toUpperCase and equals in the same if statement?Java,我可以在同一个 if 语句中使用 toUpperCase 和 equals 吗?
【发布时间】:2013-04-10 14:14:12
【问题描述】:

我只是想知道是否可以使用 Scanner 读取字符串值,将其转换为大写,然后在同一 if 语句中使用 .equals("NO")。基本上,如果用户输入 'no' 'No' 'NO' 'nO' 它会将其更改为 'NO' 然后执行 .equals("NO") 以检查用户是否要继续程序。是的,我知道 if 语句参数的当前语法不正确,这是因为我不知道该怎么做。我可以在 if 语句中执行 toUpperCase 和 equals() 吗,还是需要使用单独的 toUpperCase 语句?

就在公开课program2之后{

public static String cont="";
public static Scanner in=new Scanner(System.in);

在我的 main() 中;

System.out.print("Continue? Yes/No >> ");
cont=in.nextLine();
if(cont.toUpperCase/equals("NO")
{
System.exit(0);
}
showmenu();

此外,由于我使用的是 Syste.out.print() 和 System.out.println(),如果有一种方法可以清除输出窗口中的所有文本,那将会很有帮助。有没有办法清除输出窗口?

【问题讨论】:

  • cont.toUpperCase() 返回一个字符串,所以cont.toUpperCase().equals("NO") 会在toUpperCase() 返回的字符串上调用equals。换句话说,是的,您可以将这两种方法放在同一个 if 语句中。唯一不能像这样链接方法的情况是第一个方法是 void 方法,在这种情况下,没有对象可供下一个方法调用。
  • @Brandon:请不要将独立的东西挤进一个问题。如果其他人可以通过有意义的标题和标签找到问题的答案,他们会从这个网站中获益更多。

标签: java string if-statement


【解决方案1】:

使用String.equalsIgnoreCase() 测试是否相等,忽略大小写。

【讨论】:

  • 谢谢!如果可能的话,清除输出窗口怎么样?
  • @BrandonDurst 这可能有不同的方式,具体取决于您的平台。
  • 我的平台?如果你的意思是我假设我正在运行 NetBeans IDE 6.9.1
【解决方案2】:

是的,您可以这样做。只需这样做:

if (s.toUpperCase().equals("NO")) ...

【讨论】:

  • 一个note相关的note,不要做s.toUpperCase(),然后做s.equals("NO")。 toUpperCase() 返回一个表示 s 大写的新字符串,除非您重新分配它,否则它实际上不会将 s 更改为大写。这就是为什么这个方法链像@tieTYT 所说的那样工作,它在 s 上调用 toUpperCase(),它返回一个新字符串,然后在 equals("NO") 表达式中使用新字符串。这样,s 就得到了维护,你就得到了想要的结果。
【解决方案3】:

你可以这样做

cont.toUpperCase().equals("NO")

【讨论】:

    【解决方案4】:

    1)你可以这样做:

    // include a null check here
    if (cont!=null && cont.toUpperCase().equals("NO")) {}
    

    if(cont.equalsIgnoreCase("No"))
    

    2) 清除控制台:

    Runtime.getRuntime().exec("cls"); // cls command is OS dependent
    

    【讨论】:

    • 我收到错误“未报告的异常 java.io.IOException; 必须被捕获或声明为抛出”,即使我添加了“import java.io.*;”并将“public static void main(String[] args)”更改为“public static void main(String[] args)throws IOException”
    • 你不应该得到你在 main() 中添加了 throws 子句
    • 这是我目前的完整代码。我在刚刚输入的每一行上方插入了 /*---------*/,这是一个导入、运行时和 main() pastebin.com/HJjY1Z6e
    猜你喜欢
    • 1970-01-01
    • 2020-06-06
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多