一种基于输入数的多选择算法

And*_*dre 1 java algorithm

我有一个字符串,有三个字母,1,2,X.有时字符串可以是12,或1X,或2X ..等.

我想根据输入字母的位置添加" - ".例如,如果我得到1,结果应该是1--,如果我得到X,结果应该是-X,如果我得到2X,结果应该是-2X.

我的方法是使用2 ^ n选择的状态机,但我正在寻找一个聪明的apporach和更好的apporach.

更多例子

Input 1    2    X  2X
Ouput 1-- -2- --X -2X
Run Code Online (Sandbox Code Playgroud)

Mig*_*ork 6

您可以使用以下命令检查输入字符串是否包含字符String.contains():

String in = "12X";

String out;

out  = in.contains("1") ? "1" : "-";
out += in.contains("2") ? "2" : "-";
out += in.contains("X") ? "X" : "-";
Run Code Online (Sandbox Code Playgroud)

哪个会产生你想要的结果:

(in)    (out)
1       1--
12      12-
1X      1-X
X21     12X
X       --X
Run Code Online (Sandbox Code Playgroud)

正如评论中指出的那样,这将更有效:

String in = "12X";

String out;

out  = ( in.contains("1") ? "1" : "-" )
     + ( in.contains("2") ? "2" : "-" )
     + ( in.contains("X") ? "X" : "-" );
Run Code Online (Sandbox Code Playgroud)