文字列の長さを取得するには (len / length / mb_strlen / size / strlen) 2015/11/30
文字列の長さを取得する方法の、プログラミング言語別のメモ。
strlen(str)
len(str)
str.length()
str.length
str.length()
str.size()
strlen($str)
mb_strlen($str)
len(str)
str.length
str.size
length($str)
str.length
str.length
C言語, C++ 2013/09/08
Signature:
int strlen(char *str);
最後の \x00
はカウントしない。
Go言語 (golang) 2015/03/01
len
関数を使う。
l := len(str)
ただし、len
関数はバイト数を数えるので、ASCIIの範囲外にある文字はUTF8のバイト数になってしまう。
Java / Scala / Groovy 2014/11/11
以下は文字列に含まれるchar
の数を取得する例である。
実際の文字数はサロゲートペアが含まれている場合には異なってきてしまうので、文字数を調べたければ String#codePointCount
を使う。
Javaでの例
int len = str.length();
Scalaでの例
val len = str.length;
Groovyでの例
def len = str.length()
// または
def len = str.size()
Signature:
int java.lang.String#length()
// sizeはGroovyのみ
int java.lang.String#size()
java.lang.String
だけでなく java.lang.StringBuilder
や java.lang.StringBuffer
でも同様に使える。
(Groovyではsize()
も同様に)
java.lang.String#length
| Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#length–
java.lang.String#size
| Groovy JDK API Documentation
http://beta.groovy-lang.org/docs/latest/html/groovy-jdk/java/lang/String.html#size()
PHP 2014/11/01
C言語と同じ名前の関数 strlen
を使えるが、これは単にバイト配列の長さを返すだけなので、マルチバイトの文字が含まれる場合は文字数とは一致しない。マルチバイトにも対応して文字数を取得したい場合には mb_strlen
を使う。
$str = "あ";
$len = strlen($str);
// => 3
$len = mb_strlen($str, "UTF-8");
// => 1
// \u1F30D 地球の絵文字
$str = "\xF0\x9F\x8C\x8D";
$len = strlen($str);
// => 4
$len = mb_strlen($str, "UTF-8");
// => 1
strlen
関数 | PHP Manual
http://php.net/manual/ja/function.strlen.php
mb_strlen
関数 | PHP Manual
http://php.net/manual/ja/function.mb-strlen.php
Python 2014/12/26
例
l = len(str)
Unicode拡張領域の文字(UTF8で4バイトの文字)も含めマルチバイトの文字が含まれていても文字数を正しく取得できる。
Ruby / JRuby 2015/03/31
例
l = str.length
# または
l = str.size
2つのメソッドは全く同じ。配列のサイズ、 ハッシュのサイズも同じ名前の2つのメソッドがある。
Unicode拡張領域の文字(UTF8で4バイトの文字)も含めマルチバイトの文字が含まれていても文字数を正しく取得できる。
String#bytesize
というメソッドは文字数ではなくバイト数になる。
str = "あいうえお"
p str.length
# => 5
p str.bytesize
# => 15
String#length
メソッド, String#size
メソッド | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/String/i/length.html
String#bytesize
メソッド | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/String/i/bytesize.html
Perl 2014/11/03
例
use utf8;
length($str)
文字列をソースコード中に直接書いた場合は use utf8;
としないと、マルチバイトの文字列でもバイト数を数えてしまう。
use utf8;
と書いておけば、Unicode拡張領域の文字(UTF8で4バイトの文字)も含めマルチバイトの文字が含まれていても文字数を正しく取得できる。
length
関数 | perldoc.jp
http://perldoc.jp/func/length
sh (シェルスクリプト) 2014/12/30
シェルスクリプトで変数に入っている文字列の長さを取得するには
${#VAR}
を使う。
echo ${#STR}
JavaScript 2015/04/09
例
str.length
CoffeeScript 2013/09/07
例
str.length