SAS学习笔记5:删除字符串空格-left/right/trim/strip/compress/compbl等函数的比较

目录

Strip

Left

Right

Trim

Compress 

Compbl


data test1;
	x1='   he llo   ';
	x2='   wo rld   ';

/*	strip():去掉字符串前后空格*/
	out1=strip(x1);
	out2=strip(x2);
	out3=out1||out2;
	out4=strip(x1)||strip(x2);
	
/*	left():将左边所有空格移动到右边*/
	out5=left(x1);
	out6=left(x2);
	out7=left(x1)||left(x2);

/*	right():将右边所有空格移到左边*/
	out8=right(x1);
	out9=right(x2);
	out10=right(x1)||right(x2);

/*	trim():删除右边所有空格*/
	out11=trim(x1);
	out12=trim(x2);
	out13=trim(x1)||trim(x2);

/*	compress():去掉字符串包含的所有空格*/
	out14=compress(x1);
	out15=compress(x2);
	out16=compress(x1)||compress(x2);

/*	compbl():将多个空格压缩为一个空格*/
	out17=compbl(x1);
	out18=compbl(x2);
	out19=compbl(x1)||compbl(x2);
;
run;

Strip

strip():删除字符串前后空格。

上述代码运行结果如下:

上述运行结果中,x1和x2为原始数据,在数据集中,字符串后方的三个空格并未显示,但查看变量属性可发现x1和x2的长度依然为12,而使用length函数输出x1和x2的长度时,结果为9。这表明,字符串在读入时,后方三个空格被读入,但在输出时,最后三个空格占位被自动舍去。

而out1和out2变量,使用了strip函数,该函数作用是删除字符串前后所有空格。上图展示中,可见out1和out2相较于x1和x2,确实删除了字符串前方的三个空格。右键查看变量属性,out1和out2变量长度依然为12。但length函数输出变量长度,结果为6。

out3将out1和out2连接,得到的结果中,he llo和wo rld字符中间隔6个空格,而out4结果中,x1和x2字符中间无空格。对此,猜测out3中写法在运行时strip函数自动合并,即为strip(x1||x2)运行结果。

Left

left():将左边空格移动到右边。

 out7结果中,中间间隔6个空格,为x1字符串开头的3个空格移动至后方,x2类似,所以最终中间仍有6个空格。

right():将右边空格移动到左边。

 out10结果中,中间间隔6个空格,字符串开头有6个空格。为x1字符串结尾的3个空格移动至前方,x2类似,所以最终中间仍有6个空格,来自x2,开头仍有6个空格,来自x1。

Trim

trim():删除右边所有空格。

out13中,中间间隔3个空格,开头遗留3个空格。x1和x2字符串的右边三个空格均被删除,保留左边三个空格,所以运行结果如上。

Compress 

compress():去掉字符串包含的所有空格。

out16结果中,所有与空格均被删除。

Compbl

compbl():将多个空格压缩为一个空格

out19结果中,中间间隔2个空格,开头1个空格。x1和x2开头和结尾处的3个空格被压缩为1个空格,而后连接。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值