楼主: 乾坤神龙
3161 7

[问答] 关于sas字符串截取 [推广有奖]

  • 8关注
  • 1粉丝

硕士生

27%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
4 点
热心指数
9 点
信用等级
5 点
经验
2341 点
帖子
78
精华
0
在线时间
196 小时
注册时间
2010-6-2
最后登录
2023-9-6

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位老大,目前在尝试进行中文字符串截取的过程中,发现ksubstr如果处理那种中文、数字、符号混合在一起的字符时,会出现丢失内容或者将结果转换为乱码的情况。
data a;
length a $200. a1 a2 a3 $10.;
a="2019年08月16日07:18空腹口服导入期试验药物";
a1=ksubstr(strip(a),1,10);
a2=ksubstr(strip(a),11,10);
a3=ksubstr(strip(a),21,10);
run;

结果见截图,出现了内容丢失。

麻烦咨询一下对于这种字符串,如何进行截取。

非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:字符串 SUBSTR length strip subs

截图.png (7.28 KB)

截图.png

沙发
乾坤神龙 发表于 2020-7-23 13:30:36 |只看作者 |坛友微信交流群
data a;
length a $200. a1 a2 a3 $10.;
a="2019年08月16日07:18空腹口服导入期试验药物";
a1=ksubstr(strip(a),1,10);
a2=ksubstr(strip(a),11,10);
a3=ksubstr(strip(a),21,10);
run;

使用道具

藤椅
孤单的我们 发表于 2020-7-23 16:48:48 |只看作者 |坛友微信交流群
判断多取一位和少取一位是否相等,然后确定取到哪以及下次从哪开始。看来是为了拆分字段让字段小于200.。

使用道具

板凳
xiaopingN 发表于 2020-7-24 05:29:44 |只看作者 |坛友微信交流群
只要搞清ksubstr 里中文一个字算一个字节, 而length 里中文一个字算俩字节就很好理解你的结果。
a1, 从1数到10, ‘2019年08月16‘,  length 定义10个字节(汉字占俩字节), 所以变成”2019年08月“。
a2, 从11数到20,‘日07:18空腹口服’,length 定义10个字节(汉字占俩字节),“日07:18空” (9个字节, 后面的汉字”腹“占俩字节,超过10, 就咔嚓了)
a3, 从21数到30,‘导入期试验药物’,length 10, 所以取前5个汉字 ”导入期试验“。
要想得到你想要的结果,只要改length 长度即可(记住汉字占2 字节)
已有 1 人评分经验 收起 理由
eijuhz + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

使用道具

报纸
乾坤神龙 发表于 2020-7-24 10:56:19 |只看作者 |坛友微信交流群
xiaopingN 发表于 2020-7-24 05:29
只要搞清ksubstr 里中文一个字算一个字节, 而length 里中文一个字算俩字节就很好理解你的结果。
a1, 从1数 ...
对于length和ksubstr我知道它的机制,这不是新规的原因,需要对特定长度进行截取。
感谢!

使用道具

地板
贝因美奶粉 发表于 2022-6-13 00:11:54 来自手机 |只看作者 |坛友微信交流群
你好,请问解决了吗,我也遇到了同样的问题,中英文混合,不知道怎么正确截取不超过$200的

使用道具

7
xyyxxf111 发表于 2022-6-16 10:49:33 |只看作者 |坛友微信交流群
xiaopingN 发表于 2020-7-24 05:29
只要搞清ksubstr 里中文一个字算一个字节, 而length 里中文一个字算俩字节就很好理解你的结果。
a1, 从1数 ...
明白了,在ksubstr中,前面的起始位置是将汉字算作了一个字节,而后面的长度是将汉字算作了两个字节,算法不同。不明白为什么不设计的算法一样呢,后面的长度将汉字仍作为了两个字节,是否有什么考虑啊

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-10 14:58