[英]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.