8.46. length 文字列長¶
書式1: length(str)
書式2: lengthw(str)
文字列の長さを計算する。 lengthw関数を用いると、 \(str\) をワイド文字として扱う。 NULL値の長さは0であることに注意する。
利用例¶
importと入力データ(CSV)の準備
1import nysol.mcmd as nm 2 3with open('dat1.csv','w') as f: 4 f.write( 5'''id,str 61,abc 72,3.1415 83, 94,hello world! 10''') 11 12with open('dat2.csv','w') as f: 13 f.write( 14'''id,str 151,こんにちは 162,大阪 17''')
基本例
1nm.mcal(c='length($s{str})', a='rsl', i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# id,str,rsl 4# 1,abc,3 5# 2,3.1415,6 6# 3,,0 7# 4,hello world!,12
マルチバイト文字を含む例
以下はutf-8でエンコーディングされた日本語を用いた例である。 utf-8の日本語は1文字3バイトでエンコーディングされているので、 length関数では日本語としての文字数ではなく、そのバイト数を返す。
1nm.mcal(c='length($s{str})', a='rsl', i="dat2.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# id,str,rsl 4# 1,こんにちは,15 5# 2,大阪,6
ワイド文字として扱う例
lengthwを使うと、内部で文字列をワイド文字に変換するので、マルチバイト文字1文字を正しく認識して計算する。
1nm.mcal(c='lengthw($s{str})', a='rsl', i="dat2.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# id,str,rsl 4# 1,こんにちは,5 5# 2,大阪,2