我需要用 768 个不同的元素创建一个 if-elseif 语句。
是否有可能减少写作的精力?我知道这是一个奇怪的问题,但我需要测试 768 条不同的消息。
所以问题到底是:
是否有一种简单的方法来进行大量 if 语句,或者我只需逐行键入所有行?
如果有任何不清楚的地方,请随时询问。
编辑:
private static final String TEST = "0 0 0 0 0 40 ";
private static final String TEST2 = "0 96 0 0 0 d6 ";
private static final String TEST3 = "1 28 0 0 1 68 ";
private static final String TEST4 = "2 07 0 0 2 47 ";
private static final String TEST5 = "2 be 0 0 2 fe ";
if (data.contains(TEST)){
progress = 0;
} else if (data.contains(TEST2)) {
progress = 20;
} else if (data.contains(TEST3)) {
progress = 40;
} else if (data.contains(TEST4)) {
progress = 70;
} else if (data.contains(TEST5)) {
progress = 96;
}
编辑2:
这里有一些用于数学研究的示例数据:
00 00 00 00 00 40 00 00
00 00 00 00 00 40 00 00
00 01 00 00 00 41 00 00
00 02 00 00 00 42 00 00
00 03 00 00 00 43 00 00
00 04 00 00 00 44 00 00
00 05 00 00 00 45 00 00
00 06 00 00 00 46 00 00
00 07 00 00 00 47 00 00
00 08 00 00 00 48 00 00
.. .. .. .. .. .. .. ..
01 00 00 00 01 40 00 00
.. .. .. .. .. .. .. ..
02 00 00 00 02 40 00 00
.. .. .. .. .. .. .. ..
02 BF 00 00 02 FF 00 00
但有时在位置 7 上有另一个介于 20 和 61 之间的十六进制数字。这就是问题所在。
最佳答案
I need to make a if-elseif-statement with 768 different elements.
不,你没有。您在问题后面承认了这一点,当时您写道:
I need to test 768 different messages
这不需要“具有 768 个不同元素的 if-elseif 语句”。正如您所指出的,虽然这可能是解决问题的一种方法,但这并不是一个很好的解决方案。
Is there a easy way for mass if-statements or do I just have to type all line for line?
不要做其中任何一个。
第 1 步:在 HashMap<String, Integer>
中获取测试字符串(例如,从 XML 资源加载它们)。
第 2 步:迭代 keySet()
其中HashMap
,并测试每个键。如果您有匹配项,请设置您的progress
等于 HashMap
中的相应值,和break
跳出迭代循环。
关于java - 如何处理大量 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530679/