Мне удалось сделать это с помощью функции MAX
, где «mychar» - символьная переменная, которую нужно проверить:
COMPUTE digitcheck = (MAX(mychar,"9")="9").
Если содержимое «mychar» - это цифра [0-9] результат функции MAX
будет равен «9», в противном случае функция MAX
вернет букву, и тест на равенство не пройден.
Таким образом, вы также можете проверить, содержит ли целая строковая переменнаяписьмо или нет.Это выглядит довольно некрасиво, потому что вы должны сравнивать каждый символ вашей строковой переменной.
compute justdigits = (MAX((CHAR.SUBSTR(mystr,1,1), CHAR.SUBSTR(mystr,2,1), CHAR.SUBSTR(mystr,3,1), ..., CHAR.SUBSTR(mystr,n,1),"9")="9").