我正在使用SAS中的notalnum函數。輸入是一個db字段。現在,該函數返回一個值,告訴我每個字符串末尾都有一個特殊字符。 它不是空格字符,因爲我在輸入字段上使用了COMPRESS函數。SAS打印特殊字符的ASCII值
如何在每個字符串的末尾打印特殊字符的ACII值?
我正在使用SAS中的notalnum函數。輸入是一個db字段。現在,該函數返回一個值,告訴我每個字符串末尾都有一個特殊字符。 它不是空格字符,因爲我在輸入字段上使用了COMPRESS函數。SAS打印特殊字符的ASCII值
如何在每個字符串的末尾打印特殊字符的ACII值?
$ HEX。格式是看他們是什麼最簡單的方法:
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
喬的解決方案是很優雅,但看到我的十六進制 - >十進制轉換技能很差,我傾向於這樣做。
但是,十六進制值實際上比十進制等價物更易於使用,因爲您可以在文字中使用它。 '0D'x是回車。 – Tom