簡體   English   中英

Java:子字符串索引位置

[英]Java: substring index position

我對“索引”和“位置”一詞感到困惑。

它們對字符串有相同的含義嗎?

例如,給定的字符串“ Welcome to Java”。

在位置5處打印此字符串的子字符串。

輸出是什么? “我到Java。”

如果您的字符串是Welcome to Java ,則str.substring(5)將為您提供從索引5到最后一個ch的字符串,因此您的輸出將是me to Java 索引從0開始。位置和索引在相同的上下文中使用(兩者都從0開始:第零個位置或第零個索引表示相同)。此外, str.substring(start index, end index)將向您返回從起始索引到(結束索引-1)字符。 在我們的例子中, str.substring(5,14)將使me to Jav

在Java中,索引從0開始。對於您給出的示例,假設您創建了這樣的字符串。

String s = "Welcome to Java";

因此,該字符串中包含15個字符。 如果您在下面致電,它將返回15。

s.length()

如果您繪制一張桌子,它應該看起來像這樣:

    -------------------------------------------
    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 |
    ---------------------------------------

在位置5,由於Java從0開始的索引,現在您知道在位置5(第6個字符)處的m(或index)。

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

通常,在Java中,位置和索引的含義相同。 但是,如果此人(問這個問題來欺騙您的人)說“我們使用術語“位置5”(因此他將字符串中的第5個字符表示為位置5),那么您應該在索引4處開始子字符串。

是。 這很困惑。 但是,當我們說位置5時,通常是指索引從0開始的第6個字符。

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

現在,讓我們假設這個人(問這個問題)將位置5表示為字符串中的第5個字符。 然后,您將需要考慮,子字符串的起始索引為4。

因此,如果該人想從字符串中的第n個字符開始子字符串化(其中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));

輸出是什么? “我到Java。” 在這種情況下,輸出應為

"ome to Java"

但是,如果您的意思是位置5與索引5相同,那么您將調用...

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

哪個會打印

"me to Java"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM