通过索引在字符串中选择随机字符
我想看看第二个字符是否等于1,J,Q,K或A.然后我想为这些情况中的每一个设置布尔值。这是一个正在写作的二十一点程序。通过索引在字符串中选择随机字符
的甲板处理和单卡评价 卡是一个字符串,一个从卡的数组给定的随机值,该值将类似于“HK”
bool delt1 = card[1].Equals("1");
bool deltJ = card[1].Equals("J");
bool deltQ = card[1].Equals("Q");
bool deltK = card[1].Equals("K");
bool deltA = card[1].Equals("A");
但我收到“索引超出了阵列的范围”错误
有什么建议吗?
这可能会解决您的问题,但你可能有其他人:
bool delt1, deltJ, deltQ, deltK, deltA;
if (card.Length >= 2)
{
delt1 = card[1].Equals('1');
deltJ = card[1].Equals('J');
deltQ = card[1].Equals('Q');
deltK = card[1].Equals('K');
deltA = card[1].Equals('A');
}
else
throw new Exception("Not enough characters in card to perform this check");
我不会在这里抛出异常来处理逻辑流。例外情况适用于特殊事件。 – 2012-02-07 15:00:48
@DarrenYoung - 如果OP的卡串没有按照他们期望的方式组成,那么我会称之为*例外事件*。 – 2012-02-07 17:18:36
这绝不是应该抛出事件的情况。你可以完全控制这里的逻辑,你应该相应地处理它,并且以比例外更便宜的方式处理它! – 2012-02-07 17:45:37
有多少元素的数组中? – 2012-02-07 02:57:17
卡是一个字符串,它将保存一个随机卡的值,如“HK”,作为心灵之王 – Peerkon 2012-02-07 02:58:58
如果card是一个字符串,那么它是一个char值的集合。你为什么要检查一个字符是否等于一个字符串? – 2012-02-07 03:00:16