java - 检查android中的字符串数组中是否存在字符串时出现空指针异常?

标签 java android

我有一个应用程序,需要在添加字符串之前检查字符串是否存在于字符串类型的数组中,以避免重复。为此,我编写了以下函数:

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/

相关文章:

java - 在对象数组的元素中调用方法

android - 如果异步任务被关闭,则重新显示进度对话框

android - 如何从android日历获取事件的开始时间

java - 开发与同一数据库交互的 Android 应用程序和 Java 应用程序

java - 在 Java 中,要使用 "super"关键字,是否必须导入目标类?

java - 如何使用 Eclipse 协作开发动态 Web 项目

java - Java 中的泛型(和通配符)

java - 使用 eclipse IDE 运行 Apache OFBiz 时出错

java - 如何以编程方式获取 Camera RAW 元数据信息 Android

android - Ctrl+shift+F8 不适用于 android studio