2017-10-24 22 views
0

"index"と "position"という単語が混乱しています。Java:部分文字列インデックスの位置

文字列と同じ意味ですか?

たとえば、指定した文字列「Welcome to Java」。

5位で、この文字列の印刷部分文字列

出力は何ですか? 「私のJavaへ」 ?

+1

Javaおよび他の場所での文字列操作のコンテキストでは、インデックスと位置の両方が使用されています。あなたの2番目の質問については、なぜそのコードを実行しようとしないのですか? –

+0

位置とインデックスはおそらく交換可能に使用されています。その*可能な位置は0の代わりに1の開始インデックスで使用されていますが、それはかなり失礼です。 –

+0

ありがとう、皆さん。私の2番目の質問では、「5位」の単語が「インデックス5」または「インデックス4」と同じであるかどうかはわかりません。出力が "私をJavaにする"とは確信していません。または "ome to java" ? –

答えて

2

文字列がWelcome to Javaの場合は、インデックス番号5から最後のchまでの文字列がの文字列になります。出力はme to Javaになります。インデックスは0から始まります。位置とインデックスは同じコンテキストで使用されます(0から始まり、0番目のインデックスまたは0番目のインデックスは同じ意味です) str.substring(start index, end index)は、開始インデックスから(終了インデックス-1)文字までの部分文字列を返します。私たちの場合str.substring(5,14)が返されますme to Jav

+0

ありがとうございます。もう1つの質問は、 "この文字列のサブ文字列を位置5に印刷する"という文です。これはstr.substring(5)またはstr.substring(5,6)を書く必要があることを意味しますか? –

+0

これは少し曖昧です。 ATの位置5は、私によればstr.substring(5,6)でなければなりません。しかし、私はあなたがこれが要件が何であるかについて明確にするべきだと思います。 str.substring(5)は、位置5以降の場合です。 –

1

Javaでは、インデックスは0から始まります。 与えられた例では、このような文字列を作成したとしましょう。

String s = "Welcome to Java";

ので、この文字列は、その中の15文字が含まれています。 Javaは0でインデックスを開始以来、5位の

------------------------------------------- 
    Index  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 
    ------------------------------------------ 
    character | W | e | l | c | o | m | e | | 
    ------------------------------------------- 

    --------------------------------------- 
    Index  | 8 | 9 | 10| 11| 12| 13| 14| 
    --------------------------------------- 
    character | t | o | | J | a | v | a | 
    --------------------------------------- 

:あなたは以下を呼び出す場合は、テーブルを描画する場合 、それは15

s.length() 

を返しますが、それはこのようになります必要があります6番目の文字である5の位置(またはインデックス)にmがあることがわかりました。

--------------- 
    Index  | 5 | 
    --------------- 
    character | m | 
    --------------- 

通常、位置とインデックスは同じ意味です。しかし、この質問に誰かがあなたを騙そうとすると誰かが「私たちは「位置5」という言葉を使用します(つまり、文字列の5番目の文字を位置5としていた)ので、インデックス4で部分文字列を開始する必要があります。

はい。それは我々が位置5を言うときしかし、我々は通常のは(この質問をした)その人を想定してみましょう、インデックスは今0

--------------- 
Index  | 4 | 
--------------- 
character | o | 
--------------- 

で開始第六文字を意味する。混同されます文字列の5番目の文字として位置5を意味していたので、部分文字列の開始インデックスは4であると考える必要があります。

(nは1から文字列の長さの間の数字です)、n-1で部分文字列を開始します。これは、前述のように、インデックスがJavaで0から始まるためです。

ここで、部分文字列を見てみましょう。 https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

あなたはインデックス4から、与えられた文字列の部分文字列を印刷したいと思いますので、お電話します...

System.out.println(s.substring(4)); 

出力はどのようなものです:ここではsubstringメソッドについてのドキュメントはありますか? 「私のJavaへ」 ? Iこの場合、出力は

を出力します

"ome to Java" 

あなたはインデックス5と同じ位置5を、意味場合は、次にあなたが呼び出す...

System.out.println(s.substring(5)); 

する必要があります

"me to Java" 
+0

私は ''位置5を意味し、文字列の5番目の文字を意味する '' No. 5はインデックス6を意味します。 – user3437460

+0

私は、「位置5は文字列の5番目の文字を意味する」と言って、誰かを誘惑するかもしれないことを意味しました。私は、javaのインデックス(または位置)が0から始まるので、位置5(またはインデックス5)が6番目の文字を意味することを知っていますが、私は彼に例をあげようとしました。 –

+0

ありがとうございます。ただ1つの質問です.5桁目にこの文字列のサブ文字列を印刷する必要がある場合は、s.substring(5)またはs.substring(5,6)を使用する必要がありますか? –

関連する問題