当前位置: 首页 > 知识库问答 >
问题:

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

龙志勇
2023-03-14

我想使用现有的数组元素作为开关大小写,而不是为开关大小写提供常量字符串值

我在用于显示的资源字符串数组中有值,用户必须从这些显示值中选择,现在我想比较我在共享首选项中保存的输入值和我在数组资源中的值,我写了类似的东西,但它不起作用

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;

共有2个答案

杜俊楚
2023-03-14

首先,确保“activity”字符串和“activities”数组的项返回了一些值。试着打印这些值来检查。如果它们都返回值,则可以通过以下方式比较字符串:

if (activity.equalsIgnoreCase(activities[0]){
   Log.e("Matched" , "Yeah, it matched");
}

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

蓟捷
2023-03-14

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

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。

因此,您可以将逻辑基于索引值。

另一种方法是使用映射

 类似资料:
  • 所以我对Java还是一个新手,我以前的大部分知识都是关于Python和C++的,所以我不知道如何存储输入的数据以便进行比较。所以本质上,我希望用户输入一组整数值--他们想要的任何数字。然而,当他们不断输入这些值时,会发生的情况是当它下降时(如果它连续下降3次),它将中断循环,程序将结束。我不确定如何将输入的数据存储起来以便与前一个条目进行比较,或者是否有一种不使用列表的方法(就像我在python中

  • 问题内容: 我试图通过python摸索,并学习做事的最佳方法。我有一个字符串要与另一个字符串进行比较,看是否有匹配项: 如果’d’是一个数组,那么查看pay [j]中包含的字符串是否与’d’中的任何值匹配的最有效方法是什么? 问题答案: 如果您只想知道中是否包含的 任何 项,就像您直白地说: 如果您还想知道中包含 哪些 项目: 会如果没有的项目一个空的列表中包含的。 如果您想要的是另一种选择,那么

  • 问题内容: 我有一个脚本化的管道,可以使用该功能请求用户的密码,并将其与用户保存的凭据密码短语进行比较。如果用户输入是一种类型,则可以使用。但是,当我将输入类型更改为(因此用户输入时在屏幕上看不到该输入类型)时,它将失败并显示断言错误。 我确保输入与凭证文件中的密码匹配的密码。 我正在将Jenkins 2.83与最新的Credentials插件和Credentials绑定插件一起使用。 脚本: 我

  • 我是java新手,所以如果我犯了一个非常简单的错误,请原谅我。我正在尝试在基于文本的冒险游戏中购物。我创建了一个数组,它将物品列表存储为商店可以出售的字符串。这是我用于用户在游戏中进行购买的方法的一部分。 我试图将扫描仪输入与shopItems进行比较,以检查用户想要购买的商品是否在商店中可用,但它无法识别shopItems中的任何元素。我用这种方法有什么不对吗/哪里有错吗?这是我在这里的第一个帖

  • 在我的WebApplication中,我必须检查来自RequestBody的许多传入查询参数。为了不在每个方法中编写相同的代码,我想编写一个返回一个布尔值的函数。当接收到所有必需的参数并且entrySet的值不是null时,方法应该返回true(否则为false),我可以稍后在程序中使用传入的查询参数。 因此,我将所有传入的参数打包到一个HashMap中。另外,我在方法中放入了一个特定的列表,它提

  • 我想创建一个方法,返回用户输入值的双数组。我已经想出了如何创建一个方法,让用户选择一个数组应该包含多少个元素,然后将大小传递给下一个方法,即吐出一个由用户输入值组成的双数组。 我在这里的目标是练习学习如何使用基本方法(只是公共静态方法)来分解和解决手头的问题。 ... java包array_exercises;导入java.util.扫描仪; 公共类Array_练习{ } 预期的输出应该打印出ma