注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
LabVIEW包含字母数字中文和不可见字符串拆分为数组今天在群里看到一个有意思的问题,就是LabVIEW中,如何将一串包含了字母、数字、符号、中文等的字符串,逐个正确的转换为数组。
LabVIEW包含字母数字中文和不可见字符串拆分为数组
图中提供了两种方法。上面第一种方法是网友提供的。原理是将字符串转换成ASCII码,然后判断ASCII是不是可以打印,如果可以,则取一字节(差不多就是字母和数字),如果不可以,则取两字节(认为是中文),但是这种方法,有一个问题,就是输入的字符串中本身包含了不可见字符时(如ASCII码中0-32范围内的),也是不可打印的,则应该取2字节,但是这些不可打印的字符本身只有一字节,这时取2字节的话,就会将后面的字符串错位取了,分割就出错了。当然,如果不包含不可见字符,只包含了常规的字母、数字、中文、标点符号等则是可以正常分割成数组的。
下面第二种方法,则是我根据网友提供的方法,修改的方法。这里主要是利用中文字符的ASCII编码范围来判断,GB2132编码字符集中,中文的ASCII码范围是161-254,双字节表示,一个区码,一个位码。那么我们可以利用转换后的ASCII码是不是在161-254范围内来判断,如果在这个范围内,则认为是中文,取2字节;如果不在这个范围内,则认为是非中文,取1字节,这1字节,则不管它是不是可见字符或可打印字符。当然,这种方法,可能仍然存在问题,如GB2132字符集外的汉字、日文、韩文等双字节,或者是UTF8等3字节表示的汉字等。如果是这种情况,那就要做更多的判断。
LabVIEW包含字母数字中文和不可见字符串拆分为数组.vi
(12.71 KB, 下载次数: 74)
|