gpt4 book ai didi

java - 如果/否则选择

转载 作者:行者123 更新时间:2023-12-02 06:30:31 25 4
gpt4 key购买 nike

public boolean typeMatch(char c1, char c2) {

if (c1 == '{' || c1 == '}') {
return (c2 == '{' || c2 == '}');
} else if (c1 == '(' || c1 == ')') {
return (c2 == '(' || c2 == ')');
} else if (c1 == '[' || c1 == ']') {
return (c2 == '[' || c2 == ']');
} else {
return false;
}
}

我的程序中有上述代码,我想知道是否有更好的方法可以在不使用大量 if/else 语句的情况下实现此方法。

最佳答案

字符数组中的字符对

您可以将交易品种对(开盘和收盘)提取到 char[][] 中,然后循环遍历该数组以测试匹配项。类似的东西,

static final char[][] pairs = { { '{', '}' }, { '(', ')' }, { '[', ']' } };

public boolean typeMatch(char c1, char c2) {
for (char[] pair : pairs) {
if (c1 == pair[0] || c1 == pair[1]) {
return c2 == pair[0] || c2 == pair[1];
}
}
return false;
}

字符串数组中的字符对

或者,如果我们用 String 实现它可能更容易阅读1 (s) 和 String.indexOf(int) 2。类似的东西,

public boolean typeMatch(char c1, char c2) {
String[] pairs = { "{}", "()", "[]" };
for (String pair : pairs) {
if (pair.indexOf(c1) != -1) {
return pair.indexOf(c2) != -1;
}
}
return false;
}

1这绝不是一件坏事
2链接的 Javadoc 部分说,在任何一种情况下,如果此字符串中没有出现这样的字符,则 -1返回。

关于java - 如果/否则选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38947817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com