Java:substring索引位置

时间:2017-10-24 04:45:44

标签: java

我对“" index"”这个词感到困惑。和"位置"。

它们对字符串有相同的含义吗?

例如,给定字符串"欢迎使用Java。"

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

输出是什么? "我是Java。" ?

2 个答案:

答案 0 :(得分:2)

如果您的字符串为Welcome to Java,则str.substring(5)会为您提供从索引5到最后一个ch的字符串,因此您的输出将为me to Java。索引从0开始。位置和索引在相同的上下文中使用(均从0开始:第0个位置或第0个索引表示相同) 此外,str.substring(start index, end index)将返回从开始索引到(结束索引-1)字符的子字符串。在我们的情况下,str.substring(5,14)将返回me to Jav

答案 1 :(得分:1)

在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个字符。

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

通常,在java中,position和index表示相同。但是,如果这个人(无论谁问这个问题欺骗你)说'#34;我们使用术语'第5位,' (所以他将字符串中的第5个字符表示为位置5),然后你应该以索引4开始子字符串。

是。很困惑。但是,当我们说位置5时,我们通常指的是索引从0开始的第6个字符。

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

现在,让我们假设这个人(提出这个问题)将位置5表示为字符串中的第5个字符。然后,您需要认为,您对substring的起始索引是4。

所以,如果这个人想要从字符串中的第n个字符子串(其中n是1到字符串长度之间的数字),那么你想在n-1处开始子字符串,因为正如我所说,在Java中,index从0开始。

现在,让我们看一下子串。以下是有关substring方法的文档: 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"