首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将来自用户的输入值与数组中的值进行比较

如何将来自用户的输入值与数组中的值进行比较
EN

Stack Overflow用户
提问于 2017-06-23 02:36:20
回答 2查看 76关注 0票数 0

我希望使用现有的数组元素作为切换大小写,而不是提供常量字符串值来切换大小写

我在资源字符串数组中有我过去经常显示的值,用户必须从这些显示值中进行选择,现在我想将我保存在共享首选项中的输入值与我在数组资源中的值进行比较,我写了类似这样的内容,但它不起作用

代码语言:javascript
运行
复制
private static String activity;
private static int result;
activity = SharedPrefUtils.getActivityLevel(context);

String[] activities 
= context.getResources().getStringArray(R.array.activity);

switch (activity){
      //something like getting values from array
        case activities[0]:
            result = 0;
            break;
        case activities[1]:
            result = 200;
            break;
        case activities[2]:
            result = 300;
            break;
    }

    return result;
EN

回答 2

Stack Overflow用户

发布于 2017-06-23 02:44:01

您可以将其转换为List并使用indexOf来获取元素索引,而不是遍历array,例如:

代码语言:javascript
运行
复制
String[] activities = context.getResources().getStringArray(R.array.activity);
List<String> activitiesList = Arrays.asList(activities);
int index = activitiesList.indexOf(activity);

这是javadoc所说的:

返回该列表中指定元素的第一个匹配项的索引,如果该列表不包含该元素,则返回-1。更正式地,返回最低的索引i,使得(o==null?get(i)==null :o.equals(get(I)),如果没有这样的索引,则返回-1。

因此,您可以将您的逻辑建立在index值之上。

另一种方法是使用Map<Integer, String>,并根据用户选择的值将Integer密钥传递给该方法。

票数 0
EN

Stack Overflow用户

发布于 2017-06-23 05:44:12

首先,确保您的"activity“字符串和”activity“数组的项返回给您一些值。尝试打印这些值以进行检查。如果它们都返回值,那么你可以这样比较字符串:

代码语言:javascript
运行
复制
if (activity.equalsIgnoreCase(activities[0]){
   Log.e("Matched" , "Yeah, it matched");
}

您可以通过这种方式逐个匹配所有字符串值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44707032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档