Java逻辑OR根据用户输入

时间:2010-02-22 02:55:33

标签: java

要求: 程序查看字符串是否等于用户输入的一个或任何字符。用户可以输入以逗号分隔的任意数量的条目。

本质上代码应该是

if user inputs one value (X) // in[0] = X;

if(str.equals(in[0]))
{
// do something
}

if user inputs two values (X,Y) // in[0] = X; in[1] = Y;

if(str.equals(in[0]) || str.equals(in[1]))
{
// do something
}

if user inputs three values (X,Y,Z) // in[0] = X; in[1] = Y; in[2] = Z;

if(str.equals(in[0]) || str.equals(in[1]) || str.equals(in[2]))
{
// do something
}
等等......等等...... 如您所见,我无法编写这样的动态if语句。 我本来希望有类似下面的工作。有什么建议吗?

试用代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;

 public class test {

 public static void main (String[] args) throws Exception {

 System.out.println("Enter the characters separated by commas");
 BufferedReader consoleinput = new BufferedReader(new InputStreamReader(System.in));
 String input = consoleinput.readLine();
 input = input.toUpperCase();
 String[] in = input.split(",");

 String str = "N";
 if (str.equals(in))
 {
 System.out.println("Match found"); 
 }
 else
 {
 System.out.println("No match"); 
 }

}
}

3 个答案:

答案 0 :(得分:0)

你想要的是某种循环。

foreach(string str : in) {
    //code here
}

答案 1 :(得分:0)

Apache Commons CLI library提供了一个API,用于解析传递给程序的命令行选项

答案 2 :(得分:0)

你找这样的东西吗?

if (Arrays.asList(in).contains(str)) {
  // do something
}