You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android如何检查Arrays.xml中字符串数组是否包含指定字符串?

如何检查Arrays.xml中的字符串数组是否包含指定内容

你碰到的问题其实很典型——getResources().getStringArray()返回的是Java原生的String数组,而原生数组本身并没有contains()方法,所以直接调用这个方法肯定会失效甚至报错。下面给你两种实用的解决思路:

方法一:将数组转为List后使用contains()

这是最简洁的方式,利用Java集合类的现成方法:

// 先获取EditText的输入内容,建议trim()去掉前后空格(避免和数组里的空格匹配问题)
String userInput = yourEditText.getText().toString().trim();

// 获取字符串数组并转为List
String[] languageArray = getResources().getStringArray(R.array.text_language);
List<String> languageList = Arrays.asList(languageArray);

// 检查是否包含目标字符串
if (languageList.contains(userInput)) {
    // 这里写包含时的逻辑处理
}

小提醒:Arrays.asList()生成的是固定大小的List,不能做增删操作,但用来做包含检查完全够用。如果后续需要修改列表,可以用new ArrayList<>(Arrays.asList(languageArray))来创建可修改的ArrayList。

方法二:手动循环遍历数组检查

如果不想依赖集合类,也可以自己写循环逐个比较:

String userInput = yourEditText.getText().toString().trim();
String[] languageArray = getResources().getStringArray(R.array.text_language);
boolean isContained = false;

for (String lang : languageArray) {
    // 同样注意处理空格,比如数组里的item带前导空格,这里trim后再比较
    if (lang.trim().equals(userInput)) {
        isContained = true;
        break; // 找到匹配项就跳出循环,提升效率
    }
}

if (isContained) {
    // 包含时的逻辑
}

另外要注意:你定义的数组item里有前导空格(比如<item> English</item>),建议要么把Arrays.xml里的空格去掉,要么在比较时对数组元素和输入内容都做trim()处理,不然会出现明明内容一样但因为空格匹配失败的情况哦。

内容的提问来源于stack exchange,提问作者user8940426

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:09:48