文字列操作の比較表
高林さんのいやなブログ: 配列操作の比較表: 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) |