我正在使用SAS中的notalnum函数。输入是一个数据库字段。现在,该函数返回一个值,告诉我每个字符串末尾都有一个特殊字符。
这不是一个空格字符,因为我已经在输入字段上使用了COMPRESS函数。
我如何打印出每个字符串末尾特殊字符的ASCII值?
data have;
var="Something With A Special Char"||'0D'x;
run;
data _null_;
set have;
rul=repeat('1 2 3 4 5 6 7 8 9 0 ',3); *so we can easily see what char is what;
put rul=;
put var= $HEX.;
run;
您还可以在压缩(var=compress(var,,'c');
)时使用选项c
来压缩掉控制字符(通常是您在这些情况下遇到的字符)。
最后 - 如果您的数据来自网络,则将“ A0 ”x添加到列表中是一个不错的选择,它是表示不间断空格的字符。
如果您想查看字符在ASCII表中的位置,可以使用rank()
函数,例如:
data _null_;
string = 'abc123';
do i = 1 to length(string);
asc = rank(substr(string,i,1));
put i= asc=;
end;
run;
i=1 asc=97
i=2 asc=98
i=3 asc=99
i=4 asc=49
i=5 asc=50
i=6 asc=51
Joe的解决方案非常优雅,但是考虑到我的十六进制转十进制的技能相当差,我倾向于用这种方式。