[英]printing each word in an array in java
public class namePrinting
{
//each name in a series of names
public String[] names = {"Hello", "My", "Name", "Is", "Jose"};
//the method for putting names in
public static void printNames(String [] namesArray)
{
//go through each String in the array and then print each
for(int i = 0; i <= namesArray.length; i++)
{
System.out.println(namesArray[i]);
}
}
//print the names in this specific array
printNames(names[]);
}
我對 Java 很陌生,想知道我做錯了什么? 我只想遍歷數組中的每個字符串並打印每個字符串。 我認為不正確的部分在底部......是否有我忘記放入printNames的特定變量?
您的代碼包含多個錯誤:
names
數組,但名稱本身不是靜態的。 從方法中刪除靜態,或向字段添加靜態。printNames(names[]);
是在班級級別,這是不可能的。 方法調用應該在方法或構造函數中。names[]
作為參數輸入也無效。 這應該是printName(names)
代替。<=
應該是<
。 因為數組的長度為 5,但索引為 [0-4]。嘗試這樣的事情(沒有靜態):
public class NamePrinter
{
//each name in a series of names
public String[] names = {"Hello", "My", "Name", "Is", "Jose"};
//the method for putting names in
public void printNames(String [] namesArray)
{
//go through each String in the array and then print each
for(int i = 0; i < namesArray.length; i++)
{
System.out.println(namesArray[i]);
}
}
public static void main(String[] a){
NamePrinter namePrinter = new NamePrinter();
//print the names in this specific array
namePrinter.printNames(namePrinter.names);
}
}
或者使用靜態:
public class NamePrinter
{
//each name in a series of names
public static String[] names = {"Hello", "My", "Name", "Is", "Jose"};
//the method for putting names in
public static void printNames(String [] namesArray)
{
//go through each String in the array and then print each
for(int i = 0; i < namesArray.length; i++)
{
System.out.println(namesArray[i]);
}
}
public static void main(String[] a){
//print the names in this specific array
printNames(names);
}
}
改變:
for(int i = 0; i <= namesArray.length; i++)
到:
for(int i = 0; i < namesArray.length; i++)
,
因為最后一次迭代會導致ArrayIndexOutOfBoundsException
( names
數組的長度等於 5,但最后一個索引等於 4 - 數組的索引從 0 開始)。
將printNames(names[])
更改為printNames(names)
,因為您使用的語法不正確。
如果要在static
方法中使用names
數組,則該數組也應聲明為static
,另一方面,您可以從printNames()
方法中刪除static
關鍵字。
你不能像你那樣在類的主體中調用printNames(names)
。 它應該放在某個方法或初始化塊中(我很確定你應該把它放在public static void main(String args[])
方法中。
要更正您的代碼,您必須:
main
方法調用您的printNames
方法i <= namesArray.length
更改為i < namesArray.length
你的代碼看起來像這樣:
public class namePrinting
{
public static void printNames(String [] namesArray)
{
for(int i = 0; i < namesArray.length; i++)
{
System.out.println(namesArray[i]);
}
}
public static void main(String[] args) {
String[] names = {"Hello", "My", "Name", "Is", "Jose"};
printNames(names);
}
}
但是為了簡化您的代碼,您可以使用 foreach 而不是 for loop :
public static void printNames(String [] namesArray)
{
for (String name: namesArray) {
System.out.println(name);
}
}
如果您使用 Java 8 或 +,則可以像這樣使用 Stream Api:
public static void printNames(String [] namesArray)
{
Arrays.stream(namesArray).forEach(System.out::println);
}
玩得開心 ;)
1 將printNames(names[]) to printNames(names)
更改printNames(names[]) to printNames(names)
2 使用public static String[] names = {"Hello", "My", "Name", "Is", "Jose"};
而不是public String[] names = {"Hello", "My", "Name", "Is", "Jose"};
3 使用for(int i = 0; i <= namesArray.length -1 ; i++)
而不是for(int i = 0; i <= namesArray.length; i++)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.