部分文字列をインデックスで指定して取得するには (substr) 2013/09/30
1文字だけを取得する方法はcharAt参照。
Java / Scala 2015/03/10
Javaでの例
String str2 = str.substring(2, 4);
Scalaでの例
val str2 = str.substring(2, 4);
Signature:
from
やto
が文字列の範囲外だと java.lang.StringIndexOutOfBoundsException
が発生する。
java.lang.String
だけでなく java.lang.StringBuilder
や java.lang.StringBuffer
でも同様に使える。
java.lang.String#substring
| Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#substring-int-
PHP 2015/10/16
substr
関数を使う。
例
// $str の $start 以降の部分文字列
substr($str, $start);
// $str の $start 以降の最大で$len文字の部分文字列
substr($str, $start, $len)
substr
関数は文字列のつもりで間違って数値が入ってしまっても文字列に勝手に変換してくれるみたい。
var_export(substr("123", 1, 1)); // => '2'
var_export(substr(123, 1, 1)); // => '2'
substr
関数 | PHP Manual
http://php.net/manual/ja/function.substr.php
start が負の場合、返される文字列は、 stringの後ろから数えて start番目から始まる文字列となります。
string の長さが start 文字以下の場合は FALSE が返されます。
length が指定され、かつ負である場合、 string の終端から多くの文字が省略されます (start が負の場合は、開始位置を算出したあとで)。 もし start が切り出し位置を超える場合、 false が返されます。
length が指定され、かつ 0 である場合は、 空文字列なら NULL、そうでなければ FALSE を返します。
length を省略した場合は、 start の位置から文字列の最後までの部分文字列を返します。
$len
が$str
に比べ長すぎる場合は、エラーにならずに$str
の最後までを返す。
Python 2014/09/28
スライスを使う。
例
a = "abcdef"
s = 2
e = 4
print(a[s:e])
# => cd
# 最後の文字だけを削除した文字列を取得
print(a[0:-1])
# => abcde
# 2文字目以降を取得
print(a[1:])
# => bcdef
Ruby 2014/01/18
String#slice(index)
String#slice(from, length)
length
を省略したら、from以降の文字列ではなく、その場所の1文字を返す。
slice
メソッドの代わりに []
も同じ使い方ができる。
例
str = "あいうえお"
p str.slice(2, 3)
# => "うえお"
p str[2, 3]
# => "うえお"
slice
や []
を使った要素へのアクセスや範囲を指定してのアクセスは、
配列に対しても全く同じ使い方ができる。
Perl 2014/02/24
例
use utf8;
my $s = "あいうえお";
print substr($s, 0, 3);
# => あいう
print substr($s, 2, 3);
# => うえお
print substr($s, 1);
# => いうえお
use utf8;
がないと、バイト数で数えてしまって、あ
しか表示されない。
substr
関数はとても変わっていて、左辺値として使えてしまうので、以下のように文字列の一部を変更するためにも使えてしまう。
use utf8;
my $s = "あいうえお";
substr($s, 2, 3) = "UEO";
print $s;
# => あいUEO
JavaScript 2014/11/22
例
var newStr = str.substring(from);
var newStr = str.substring(from, to);
var newStr = str.substr(from);
var newStr = str.substr(from, len);
from
, to
, len
に範囲外の数字を与えてもエラーになったりはしない。
length
を省略したら、from
から最後までの部分文字列を返す。
substr
ではfrom
を負にすると、後ろから数えてくれる。substring
にはこの機能がないみたい。
例
"abcdef".substr(-1)
// => "f"
CoffeeScript 2013/09/07
str[from..to]
例
str = "abcdef"
a = 1
b = 3
console.log(str[a..b]) # => bcd