gpt4 book ai didi

java - 根据值获取数组项的索引

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:49 25 4
gpt4 key购买 nike

我在 arrays.xml 中定义了一个字符串数组,它引用了 strings.xml 中的两个字符串:

<string-array name="my_options">
<item>@string/my_string_one</item>
<item>@string/my_string_two</item>
</string-array>

<string name="my_string_one">Value 1</string>
<string name="my_string_two">Value 2</string>

我需要根据字符串的值获取数组中某项的位置。即字符串“Value 2”的索引为 1。我显然可以对位置值(0、1 等)进行硬编码,但如果更改字符串的顺序,它就会中断。我希望代码在位置上独立。以下作品:

int value = Arrays.asList((getResources().getStringArray(R.array.my_options))).indexOf(getString(R.string.my_string_one));

有没有更紧凑、更简单的方法来做到这一点?

最佳答案

您在问题中显示的代码基本上就是您需要做的。

但是,您可以稍微重构它以使其更具可读性:将 Arrays.asList((getResources().getStringArray(R.array.my_options))) 重构为一个列表(我不知道你的应用程序代码是什么样的,但你可以将这个列表存储为实例字段或即使作为静态(类)字段)。

static List<String> myOptions;

....
if (myOptions == null) {
myOptions = Arrays.asList((getResources().getStringArray(R.array.my_options)));
}

...

int value = myOptions.indexOf(getString(R.string.my_string_one));

关于java - 根据值获取数组项的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com