我对“" index"”这个词感到困惑。和"位置"。
它们对字符串有相同的含义吗?
例如,给定字符串"欢迎使用Java。"
在第5位打印此字符串的子字符串。
输出是什么? "我是Java。" ?
答案 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"