如何测试字符串字符是否为数字?

How to test if a string character is a digit?

如何在 SPSS 中测试字符串变量的某个字符是否为数字(然后根据结果进行一些操作)?

例如,我有一个反映街道号码的变量。一些街道号码在末尾有附加字符,例如“12b”。现在让我们进一步假设我将最后一个字符(可以是数字或附加字母)提取到字符串变量中。之后我想检查这个字符是数字还是字母。如何做到这一点?

我设法用 MAX 函数做到了,其中 "mychar" 是要检查的字符变量:

COMPUTE digitcheck = (MAX(mychar,"9")="9").

如果"mychar"的内容是数字[0-9],MAX函数的结果将为“9”,否则MAX函数将return 字母和相等性测试失败。

通过这种方式,您还可以检查整个字符串变量是否包含字母。虽然它看起来很丑陋,因为您必须比较字符串变量的每个字符。

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").

如果您尝试将字母转换为数字,那么它将成为缺失值。因此,要测试一个字符是否为数字,可以这样做:

if not missing(number(YourCharacter,f1)) .....

同样的测试可以判断一个字符串是否只有一个数字:

compute OnlyNumber=(not missing(number(YourString,f10))).

注意:在字符串上使用 number 命令会产生警告消息,您当然可以忽略这些消息。