将字符与Ada中的一组字符进行比较

时间:2012-09-17 21:30:43

标签: comparison character range ada letter

我正在使用Ada并获取和int,我需要检查它是否是一个转换为int的字符,将其转换回来并针对一个字符进行测试。问题是我不想打字

if intToChar(popped) = 'a' | 'A' | 'b' | 'B' | (etc.) 
then

我是Ada的新手,所以我想知道是否有一种更简单的方法可以做到这一点,而不是输入52或者。我尝试了一些事情,但没有成功。

我想知道我是否可以使用类似字符范围'a'...'Z'(也是'a''''Z'得到整个字母?或者'A'...'z' ?),但我知道这些是值,在类型中使用时实际上不是字符。

我也可以创建一个函数进行检查,但我只需要在代码中的一个位置执行此操作,因此我在这里缺少的快捷方式会很好。我还可以使用一个函数来检查变量是否是一个字符,如果它包含在Ada中。

2 个答案:

答案 0 :(得分:5)

找到Ada.Characters.Handling.Is_Letter()

答案 1 :(得分:5)

你真的不需要地图:

Subtype Uppercase is Character Range 'A'..'Z';
Subtype Lowercase is Character Range 'a'..'z';

If C in Uppercase or C in Lowercase then
  ...
End if;

当然,对于更复杂的检查,地图{或集}是可行的方法。