如何在Java中找到数组中元素的索引?我希望在Java中找到给定元素的索引,知道它的内容。我尝试了以下示例,该示例不起作用:class masi {
public static void main( String[] args ) {
char[] list = {'m', 'e', 'y'};
// should print 1
System.out.println(list[] == "e");
} }任何人都可以解释这有什么问题以及我需要做些什么来解决它?
3 回答
呼如林
TA贡献1798条经验 获得超3个赞
在这种情况下,您可以从字符数组中创建新的String,然后对该字符串执行indeoxOf(“e”):
System.out.println(new String(list).indexOf("e"));
但在原始数据类型的其他情况下,您将不得不迭代它。
12345678_0001
TA贡献1802条经验 获得超5个赞
或者,您可以使用Commons Lang ArrayUtils类:
int[] arr = new int{3, 5, 1, 4, 2};int indexOfTwo = ArrayUtils.indexOf(arr, 2);
indexOf()
对于不同的数组类型,存在方法的重载变体。
烙印99
TA贡献1829条经验 获得超13个赞
这甚至不是有效的语法。而你正在尝试与字符串进行比较。对于数组,您必须自己遍历数组:
public class T { public static void main( String args[] ) { char[] list = {'m', 'e', 'y'}; int index = -1; for (int i = 0; (i < list.length) && (index == -1); i++) { if (list[i] == 'e') { index = i; } } System.out.println(index); }}
如果您正在使用集合,例如ArrayList<Character>
您也可以使用以下indexOf()
方法:
ArrayList<Character> list = new ArrayList<Character>();list.add('m');list.add('e');list.add('y');System.out.println(list.indexOf('e'));
还有一个Arrays
类缩短了上面的代码:
List list = Arrays.asList(new Character[] { 'm', 'e', 'y' });System.out.println(list.indexOf('e'));
添加回答
举报
0/150
提交
取消