我有一个应用程序,需要在添加字符串之前检查字符串是否存在于字符串类型的数组中,以避免重复。为此,我编写了以下函数:
public boolean arrayHas(String[] arr, String str)
{
for(int i=0;i<arr.length;i++)
{
if(arr[i].equals(str))
return true;
}
return false;
}
要调用此函数,我使用:
if(!arrayHas(contacts,str))
{
contacts[i] = str;
i++;
}
contacts 和 str 声明如下
public static String contacts[] = new String[]{};
String str = "";
Bundle bun = getIntent().getExtras();
str = bun.getString("key");
元素只能通过主代码添加到“联系人”,它一开始是空的。我尝试添加一个 toast 来显示通过 Intent 接收到的“str”的值,并且效果很好。但我在 arrayHas 函数的“if”语句中收到 NullPointerException。有人可以帮我吗?
最佳答案
似乎您尚未使用元素初始化数组。所以它们都是 NULL。
在 arrayHas 函数中检查要比较的元素是否为 null。
if(arr[i] != null && arr[i].equals(str) )
{
// do your operation
}
也在调用 arrayHas 函数之前
if(arrayHas(contacts,str)) { }
检查联系人是否为空。
关于java - 检查android中的字符串数组中是否存在字符串时出现空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13303296/