我遇到以下問題,其中car
是String
數組,它尚未初始化/沒有元素。如何查找字符串數組的長度?
String car [];
System.out.println(car.length);
什麼是可能的解決方案?
我遇到以下問題,其中car
是String
數組,它尚未初始化/沒有元素。如何查找字符串數組的長度?
String car [];
System.out.println(car.length);
什麼是可能的解決方案?
由於car
尚未初始化,因此它沒有長度,其值爲null
。然而,編譯器甚至不會允許你編譯的代碼,如,拋出以下錯誤:變量車可能未被初始化。
你需要先初始化它,然後你可以使用.length
:
String car[] = new String[] { "BMW", "Bentley" };
System.out.println(car.length);
如果你需要初始化一個空數組,你可以使用以下命令:
String car[] = new String[] { }; // or simply String car[] = { };
System.out.println(car.length);
如果您需要以特定大小初始化它以填充某些位置,您可以使用以下內容:
String car[] = new String[3]; // initialize a String[] with length 3
System.out.println(car.length); // 3
car[0] = "BMW";
System.out.println(car.length); // 3
不過,我建議您使用List
相反,如果你打算將元素添加到它:
List<String> cars = new ArrayList<String>();
System.out.println(cars.size()); // 0
cars.add("BMW");
System.out.println(cars.size()); // 1
+1用於提示列表,它幾乎總是比數組更適合的*接口*。 – 2011-02-01 12:57:17
您的第一條陳述「由於汽車尚未初始化,所以沒有長度,其值爲空」是錯誤的。由於汽車還沒有初始化,代碼甚至不會編譯。引用可能未初始化的變量是編譯時錯誤。 – jarnbjo 2011-02-01 13:33:02
你說得對,'javac`確實會拋出這個錯誤。我已經編輯了我的答案來解決這個問題。 – 2011-02-01 14:35:33
那麼,在這種情況下,car
變量會null
,所以取消引用它(如你做當你訪問car.length
時)會拋出一個NullPointerException
。
事實上,你不能訪問變量的所有,直到肯定給它賦值 - 否則編譯器會抱怨「變量車可能沒有被初始化」。
你在這裏試圖做什麼(我不清楚你到底在找什麼「解決方案」)?
String car [];
是對String-s數組的引用。你看不到一個長度,因爲那裏沒有數組!
我認爲你正在尋找這個
String[] car = new String[10];
int size = car.length;
這是行不通的。你首先必須初始化數組。到目前爲止,您只有一個String []引用,指向null
。
當您嘗試讀取長度成員時,您實際上做的是null.length
,這會導致NullPointerException。
由於您尚未初始化car
,所以它在JVM(Java虛擬機)中不存在,因此您必須首先對其進行初始化。
例如:
car = new String{"Porsche","Lamborghini"};
現在,你的代碼將運行良好。
輸入:
String car [];
car = new String{"Porsche","Lamborghini"};
System.out.println(car.length);
OUTPUT:
上述所有的答案都建議它會拋出一個NullPointerException。
請用某些值初始化它,然後才能正確使用length屬性。例如:
String[] str = { "plastic", "paper", "use", "throw" };
System.out.println("Length is:::" + str.length);
現在定義了數組'str',所以它的長度也有一個定義的值。
在Java中,我們聲明數組(如汽車)的字符串作爲
String []car;
String car[];
我們使用new運算符創建數組,並指定其類型: -
String []car=new String[];
String car[]=new String[];
該分配參考,到一串字符串,到汽車。 您也可以通過初始化它創建數組: -
String []car={"Sedan","SUV","Hatchback","Convertible"};
因爲我們還沒有初始化數組,你要訪問它,一個NullPointerException異常被拋出。
解決方案可能取決於您的問題。謹慎地告訴我們它是什麼? – jarnbjo 2011-02-01 13:34:06