Cia*_*ara 6 java string if-statement input
有没有其他方法来缩短这种情况?
if (oper.equals("add") || oper.equals("Add") || oper.equals("addition") ||
oper.equals("Addition") || oper.equals("+"))
Run Code Online (Sandbox Code Playgroud)
我只是想知道我能做些什么来'快捷'这个.当提示在我的简单计算器程序中执行何种操作时,用户将键入一个字符串.我们的教授说我们的程序应该接受用户是否用小写字母输入"添加"或"添加"...或者是我应该这样做的唯一方法?
您可以使用前String#equalsIgnoreCase(String)四个字符串: -
if (oper.equalsIgnoreCase("add") ||
oper.equalsIgnoreCase("addition") ||
oper.equals("+"))
Run Code Online (Sandbox Code Playgroud)
如果字符串数量增加,最好使用a List,并使用其contains方法.但仅针对这些输入,您只能遵循此方法.
另一种方法是使用String#matches(String)方法,它采用正则表达式: -
if (oper.matches("add|addition|[+]")
Run Code Online (Sandbox Code Playgroud)
但是,你真的不需要正则表达式.特别是,这种方法可能会变得更难以获得更多输入.但是,这只是这种情况的一种方式.所以,你可以选择其中之一.第一个是第一个更容易观看.
或者,您也可以使用enum存储operators,并在任何地方传递它的实例,而不是string.使用它会更容易.枚举看起来像这样:
public enum Operator {
ADD,
SUB,
MUL,
DIV;
}
Run Code Online (Sandbox Code Playgroud)
您可以根据自己的需要进行增强.请注意,由于您正在获取用户输入,因此您首先需要根据它来识别相应的枚举实例,并且从那里开始,您可以处理该枚举实例,而不是String.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |