2010-12-31 15 views
55

コード:のJava:サブインデックス範囲

public class Test { 
    public static void main(String[] args) { 
     String str = "University"; 
     System.out.println(str.substring(4, 7)); 
    } 
} 

出力:substringメソッドがどのように働くか、私は本当に理解していないers

。インデックスは0から始まっていますか? 0から始める場合、eはインデックス4にありますが、のように、のように、iは7になります。

+4

それは[中国語](http://blogs.sun.com/chengfang/entry/javaee_5_api_javadoc_in)です@Nikit! – marcog

+0

また、beginインデックスをstr.length()として配置すると、IndexOutofBoundsエクセッションがスローされません。空の文字列を返します。 –

答えて

112

0:U

1:N

2:私

3:V

4:E

5:R

6:S

7:私は

8:T

9:

スタートインデックスが含まれており、Y

エンドインデックスは排他的である

Javadoc link

+2

ありがとう、ちょうど私が有益なものを見つけたこと; beginIndex - 開始インデックス(両端を含む) endIndex - 終了インデックス。 –

+3

方法は奇妙ですか? –

+0

それを他のすべての配列と同様に0を底とするchar配列と考えると、2番目の引数は終了位置ではなく* stop *位置になります。 –

10

the javadocを参照してください。これは第1引数の包括的インデックスであり、第2引数の排他的インデックスです。

10

どちらも0から始まりますが、開始は両端を含み、終了は排他的です。これにより、結果として得られる文字列の長さは、start - endになります。実際の文字ではなく文字列内の位置と考えることができます。

0 1 2 3 4 5 6 7 8 9 
u n i V E R s i t y 
     s  e 
     t  n 
     a  d 
     r 
     t 

docsを引用:

ストリングが指定された beginIndexから始まり、インデックスendIndex - 1で 文字まで延びています。したがって、 部分文字列の長さは endIndex-beginIndexです。

2

はい、インデックスはゼロ(0)から始まります。 2つの引数はドキュメントあたりのstartIndexとendIndex、以下のとおりです。

ストリングが指定されたbeginIndexから始まり、endIndexのインデックスで文字に拡張 -

1.詳細についてはhereを参照してください。

5

あなたのように私はそれが自然に来たとは思わなかった。私は通常、まだ返された文字列の

  • であることを自分自身を思い出させるために持っている

    lastIndexの - firstIndexあなたはlastIndexのように文字列の長さをもかかわらず使用することができます

  • そこには文字はありません。それを参照しようとすると、例外がスローされます。

so

"University".substring(6, 10) 

は、サブストリング(のstartIndex、endIndexの)のための位置10

1

に文字がないにもかかわらず、4文字の文字列 "sity"を返し、startIndexのは、包括的であるとendIndexは排他的です。 startIndexとendIndexは非常に混乱します。 これを覚えておくために、部分文字列(startIndex、length)を理解します。

1

部分文字列は、から始まり、指定された最初の番号の位置に文字を含みますが、指定された最後の文字には含まれません。

0

endIndexは非常に混乱する用語です。私は動機が新しい文字列の長さをendIndex - startIndexに保つことだったと思います。しかし何?私はそれが包括的であることを覚えておくほうが簡単だと思います。

2
public String substring(int beginIndex, int endIndex) 

beginIndex - 開始インデックス。

endIndex - 終了インデックス、

例:

public class Test { 

    public static void main(String args[]) { 
     String Str = new String("Hello World"); 

     System.out.println(Str.substring(3, 8)); 
    } 
} 

出力: "LO臥"

3〜7のインデックスから。

public String substring(int beginIndex) 

beginIndexは、インデックス、包括開始-The:

substring()方法の別の種類があります。 beginIndexからメインストリングの最後までのサブストリングを戻します。

例:

public class Test { 

    public static void main(String args[]) { 
     String Str = new String("Hello World"); 

     System.out.println(Str.substring(3)); 
    } 
} 

出力:3から "LO世界"

最後のインデックスへ。

1
public class SubstringExample 
{ 
    public static void main(String[] args) 
    { 
     String str="OOPs is a programming paradigm..."; 

     System.out.println(" Length is: " + str.length()); 

     System.out.println(" Substring is: " + str.substring(10, 30)); 
    } 
} 

出力:

length is: 31 

Substring is: programming paradigm