String.subSequence()次の javadoc があります。
このシーケンスのサブシーケンスである新しい文字シーケンスを返します。
フォームのこのメソッドの呼び出し
str.subSequence(begin, end)呼び出しとまったく同じように動作します
str.substring(begin, end)このメソッドは、String クラスが CharSequence インターフェースを実装できるように定義されています。
誰でも説明できますか?
String.subSequence()次の javadoc があります。
このシーケンスのサブシーケンスである新しい文字シーケンスを返します。
フォームのこのメソッドの呼び出し
str.subSequence(begin, end)呼び出しとまったく同じように動作します
str.substring(begin, end)このメソッドは、String クラスが CharSequence インターフェースを実装できるように定義されています。
誰でも説明できますか?
サブシーケンス
サブシーケンスは、サブストリング、サフィックス、およびプレフィックスの一般化です。2 つ以上の文字列の部分列である最長の文字列を見つけることは、最長共通部分列問題として知られています。
例: 文字列「anna」は、文字列「banana」のサブシーケンスです。
banana
|| ||
an na
部分文字列
文字列の部分文字列は、文字列のサフィックスのプレフィックスであり、同等にプレフィックスのサフィックスです。ある文字列が別の文字列の部分文字列である場合、それはサブシーケンスでもあり、より一般的な概念です。
例: 文字列 "ana" は、2 つの異なるオフセットにあるバナナの部分文字列 (およびサブシーケンス) です。
banana
|||||
ana||
|||
ana
詳細はこちらをご覧ください。
しかし、Java に関する限り、javadocで明確に述べられているように、それらの使用に違いはありません。また、そこに記載されているように、メソッドはインターフェイスに準拠するようsubSequenceにクラスにのみ実装されています。そして、このメソッドの名前は実際には単なる誤称です。StringCharSequence
を使用すると、文字のシーケンスとして表される文字列の読み取り専用形式であるCharSequencestr.subSequence(begin, end)が返されます。例えば:
String string = "Hello";
CharSequence subSequence = string.subSequence(0, 5);
の新しいインスタンスをインスタンス化せずにchars内を変更することはできないという意味でのみ読み取られます。CharSequenceCharSequence
を使用する必要がある場合は、結果を:str.subSequence(begin, end)にキャストできます。String
String string = "Hello";
String subSequence = (String) string.subSequence(0, 5);
そしてのようなすべての通常のString演算子を使用しますsubSequence += " World";
String のソースを見ると、subsequence が実際に substring を呼び出していることがわかります。部分文字列と異なる唯一のことは、文字列を CharSequence にキャストすることです。
基本的には返されたものだけです。1 つは String で、もう 1 つは CharSequence (文字列としてキャストできます) です。
CharSequence 型の変数が必要な場合は、subSequence を使用します。