文字列操作の比較表

高林さんのいやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++に触発されて,個人的により混乱している文字列操作の表を書いてみました.個人的に使うもの,ということで,Perl, Java, WTL, STL, C, shです.さすがにshだと,できることは少ないです.

いずれも一通り使えるってレベルなので,間違いがあったらご容赦を.とくにperlは,もっとalternativeがありそう..

  Perl Java WTL::CString std:string C sh
長さ length($a) a.length() a.GetLength() a.length(), a.size() strlen(a)  
結合 $a = $a . $b a = a + b a = a + b a = a + b strncat(a, b, strlen(b)) a=$a$b
比較 $a eq $b a.equals(b) a == b a == b strncmp(a,b,strlen(a)>strlen(b)?
    strlen(a):strlen(b))*1
$a=$b
n文字目の取得 substr($a,n,1) a.charAt(n) a.GetAt(n), a[n] a[n] *(a+n)  
n文字目からm文字 substr($a,n,m) a.substring(n,m) a.Mid(n,m) a.substr(n,m) strncpy(b,a+n,m)  
部分文字列xを検索 index($a,$x) a.indexOf(x) a.Find(x) a.find(x) strstr(a,x)  
小文字にする a =~ tr/A-Z/a-z/ a.toLowerCase() a.MakeLower() _strlwr(a)*2    
大文字にする a =~ tr/a-z/A-Z/ a.toUpperCase() a.MakeUpper() _strupr(a)*3    
分割 split(/x/,$a) a.split(x)        
文字置換 $a =~ s/x/y/ a.replace(x,y) a.replace(x,y)      
文字列置換(最初のみ) $a =~ s/x/y/ replaceFirst(x,y)        
文字列置換(全部) $a =~ s/x/y/g replaceAll(x,y) a.replace(x,y)      
フォーマット sprintf("%s",$x) a.format("%s",x)*4 a.Format("%s",x) snprintf(a,strlen(a),"%s",x)    

追記(05/9/5)

id:Psychsさんのご指摘により,Javaの比較を修正( a == b → a.equals(b) )しました.

*1:返り値で大小までわかる

*2:VCにはあるが,glibcにはなさそう

*3:VCにはあるが,glibcにはなさそう.

*4:J2SE 5.0以降