2012-02-21 12 views
0

你好,我有一個非常簡單的問題。我正在研究討論數組的不同網站,我看到這部分我不太瞭解。 (1)爲什麼'myString.length()'有'()',爲什麼不只是myString.length如例(2)? (1)爲什麼'System.out.println(myString.substring(i,i+1))'有'myString.substring(i,i+1)'爲什麼不只是'myString(i,i+1)'??爲什麼'System.out.println(myString.substring(i,i+1))'有'myString.substring(i,i+1)'爲什麼不只是'myString(i,i+1)'? (1)爲什麼'System.out.println(myString.substring(i,i+1))'有兩個值'(i,i+1)',爲什麼不是'System.out.println(myString.substring(i))'(2)?解釋一些關於字符串的細節

1. String myString="abcedaslkhldfag"; 
for(int i=0; i<myString.length(); i++) 
System.out.println(myString.substring(i,i+1)); 


2. for(int i=0; i<anArrayOfints.length; i++){ 
System.out.println(anArrayOfints[i]); 
} 

謝謝 我發現它在這個網站http://www.javaclass.info/classes/java-array/array-examples-demonstration-and-code-snippets.php

+0

不錯的問題,有點難以解釋。深入的基礎知識。 – sgowd 2012-02-21 06:18:18

回答

0

First,about Arrays and Strings。

您正在比較完全不同的類。

數組類型是動態創建的特殊對象。即使是基元數組也是對象(與C不同),所以它可能有某些成員變量/方法。 看看這裏:Array members

字符串是封裝行爲適合字符串,如子字符串,修剪等類的實際數據存儲在內部作爲字符數組,因此它們之間有密切的聯繫,但這個類本身不僅僅代表人物。

其次,關於subString方法。

調用字符串對象的方法遵循API指定的語法。

public String substring(int beginIndex) 
public String substring(int beginIndex,int endIndex) 

查看字符串API here。你會發現有一個返回String長度的length()方法。

關於「數組」類的說明。

有一個名爲「數組」的類,可以作爲集合框架的一部分使用。這個類的目的是包含在所有類型的數組中常用的行爲(如排序和搜索)。

+0

好的這個評論很好,很多這方面的資料。我讀了它,我明白了很多。謝謝老師。 – 2012-02-21 08:34:29

0

Array類擴展java.lang.Object。因此,array是Object的一個實例。數組有一個名爲length的實例變量。這是一個變量,所以你不需要()。 而字符串類有一個稱爲長度的成員函數,這就是爲什麼你需要()。

+0

謝謝老先生,對我這樣的人來說很簡單。 – 2012-02-21 08:52:03

0

這是因爲length()是String類的方法,而lengthArray類的實例變量。

至於myString.substring(i, i + 1),這是在String類的實例上調用的方法,該類將返回包含子字符串的新實例String。實際上,myString.substring(i)確實存在於API中,並且將返回從i開始並以myString中的最後一個字符結束的子字符串。

請注意,anArrayOfints[i]返回存儲在數組中的元素i的int。

+0

閱讀所有評論和鏈接後,該部分不知道「myString.substring(i)確實存在於API中,並且會返回從i開始並以myString中最後一個字符結尾的子字符串」。感謝您的幫助和時間來解釋。 – 2012-02-21 08:43:41

0

第一個,myString是一個字符串,它是一個對象。您正在調用String類型的方法length()來了解字符串的長度。此方法計算字符串中的字符數並返回該數字。並且subString()也是一個需要兩個參數的方法,即開始和結束索引。這只是由Java創建的標準。要更多地瞭解字符串方法,請參閱here

第二個是數據連續內存數組。陣列的長度也存儲在陣列中,並使用'.length'

+0

謝謝你,像我這樣的人很簡單明瞭的解釋。 – 2012-02-21 08:36:28

0

訪問1,myString有一個名爲length的方法。當使用方法時,必須指定應包含在「()」中的參數。在(2)中,長度是指屬性。只是將它用作變量。

2,子串是方法。當使用某個對象的方法時,可以想象你正在向這個對象發送命令。 myString無法理解「myString(i,i + 1)」。您應該具體指定方法或命令「subString」,其中anArrayOfints是一個數組對象。就像一個東西的列表。你應該指定一個數字來選擇一個元素。

+0

謝謝先生,我感謝您的回覆,證實了我所學到的。 – 2012-02-21 08:41:17