[英]Checking for null element in an Array
我想檢查一個Array元素是否為空。
我已初始化一個大小為2的String
數組。我遍歷了該數組並檢查數組元素是否為null。 如果為空,則僅在該位置添加String
“ a”。
我下面的代碼將產生以下輸出:
1=a
2=a
碼:
public class CheckArrayElementIsNull {
public static void main(String[] args) {
String[] arr = new String[2];
for(int i = 0; i < arr.length; i++) {
if(arr[i] == null) {
arr[i] = "a";
}
System.out.println(i + "=" + arr[i]);
if(arr[i] == null) {
System.out.println(i + "= null");
}
}
}
}
我嘗試在if條件之后添加一個中斷,但未打印任何內容。
public class CheckArrayElementIsNull {
public static void main(String[] args) {
String[] arr = new String[2];
for(int i = 0; i < arr.length; i++) {
if(arr[i] == null) {
arr[i] = "a";
break;
}
System.out.println(i + "=" + arr[i]);
if(arr[i] == null) {
System.out.println(i + "= null");
}
}
}
}
我期望這個輸出:
1=a
2=null
您的循環中有一些問題。
for(int i = 1; i < arr.length - 1; i++) { //<---- This does not iterate over the entire array, leaving out the first and last elements
if(arr[i] == null) {
arr[i] = "a";
break; //<---- This terminates the loop entirely, if you want to stop all instructions past this one try using continue instead
}
System.out.println(i + "=" + arr[i]);
if(arr[i] == null) { //This code is unreachable as arr[i] is initialized if it was detected as null before
System.out.println(i + "= null");
}else{
System.out.println(i + "=" + arr[i]);
}
}
相反,您應該嘗試
for(int i = 0; i < arr.length; i++) {
if(arr[i] == null) {
arr[i] = "a";
System.out.println(i + "= null");
break;
}
System.out.println(i + "=" + arr[i]);
}
在進入for
循環之前,請嘗試在您希望不為null
的索引處分配值:
String[] arr = new String[3];
arr[1] = "a";
for (int i = 0; i < arr.length; i++)
{
if (arr[i] == null)
{
System.out.println(i + "=null");
}
else
{
System.out.println(i + "=" + arr[i]);
}
}
這是因為break
會中斷for
循環的迭代,並立即退出循環。 您應該稍微更改一下設計。 根據我的理解,您正在嘗試實現(將“ a”分配給遇到的第一個null元素並停止,打印數組中的所有元素),下面的方法應該起作用:
public class CheckArrayElementIsNull {
public static void main(String[] args) {
String[] arr = new String[3];
boolean flag=true; //use a flag that will check if null is encountered
for(int i = 0; i < arr.length; i++) {
if(arr[i] == null && flag) { // first time flag will be true
arr[i] = "a";
flag=false; //set flag to false , to avoid further assignment of 'a' to null values
}
System.out.println(i + "="+ arr[i]); //print array
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.