一、關(guān)于變量長(zhǎng)度
1、如果沒有通過length定義變量長(zhǎng)度,則字符變量長(zhǎng)度為第一次賦值是長(zhǎng)度,數(shù)值變量長(zhǎng)度默認(rèn)為8,且默認(rèn)以best12.格式保存
eg1:
- data test;
- name='jimmy';
- name='jim';
- num=123;
- run;
2、由于數(shù)值變量默認(rèn)輸出格式best12.,在轉(zhuǎn)換為字符變量格式的時(shí)候,會(huì)變成12位字符變量,不足12位的在前面補(bǔ)足空格
eg2:
- data test;
- name='jimmy';
- num=123;
- pin=name||num;
- run;
拼接函數(shù)自動(dòng)將num轉(zhuǎn)換為字符變量,可以看出變量pin長(zhǎng)度為17(5+12),123前面補(bǔ)足了9個(gè)空格。
3、如果通過length定義了字符變量的長(zhǎng)度,則不足定義長(zhǎng)度位數(shù)的會(huì)在后面補(bǔ)足空格
eg3:
- data test;
- length name $8;
- name=' jimmy';
- run;
4、關(guān)于length函數(shù),我們看一下幫助菜單length函數(shù)的定義:
LENGTH Function
Returns the length of a non-blank character string, excludingtrailing blanks, and returns 1 for a blank character string.eg4:
- data test;
- name=' jimmy ';
- num= 123 ;
- a=length(name);
- b=length(num);
- put a b;
- run;
5、關(guān)于substr\trim\scan函數(shù),SUBSTR和TRIM不更改變量的存儲(chǔ)長(zhǎng)度,也是在新生成變量后面補(bǔ)空格,scan函數(shù)結(jié)果默認(rèn)長(zhǎng)度200。
二、一些對(duì)變量中空格發(fā)生作用的字符函數(shù)總結(jié)
1、只對(duì)首尾空格起作用字符函數(shù)
trim() 去掉字符串尾部空格,如果字符串為空,則返回一個(gè)空格
left() 把字符串開頭的空格移到尾部
strip() 去掉字符串開頭和結(jié)尾的所有空格
cat() 與||作用類似,保留首尾全部空格
catt() 但是連接之前會(huì)去掉各字符串尾部空格,相當(dāng)于連接符結(jié)合trim()使用
cats() 但是連接之前會(huì)去掉首尾全部空格,相當(dāng)于連接符結(jié)合strip()使用
catx() 但是連接之前會(huì)去掉首尾全部空格,并且在字符串之間加上一個(gè)指定的字符串2、如果想去除字符中間空格,使用compress函數(shù)