字符串数组中的 indexOf
Posted
技术标签:
【中文标题】字符串数组中的 indexOf【英文标题】:indexOf in a string array 【发布时间】:2011-09-09 02:57:27 【问题描述】:有没有像你在字符串中那样获取 indexOf 的方法。
output.add("1 2 3 4 5 6 7 8 9 10);
String bigger[] = output.get(i).split(" ");
int biggerWher = bigger.indexOf("10");
我写了这段代码,但它返回一个错误并且没有编译!有什么建议吗?
【问题讨论】:
希望你有特定的编程语言? 在我看来像 Java... Where is Java's Array indexOf?的可能重复 【参考方案1】:使用这个...
output.add("1 2 3 4 5 6 7 8 9 10");
String bigger[] = output.get(i).split(" ");
int biggerWher = Arrays.asList(bigger).indexOf("3");
【讨论】:
使用 asList 的附带效果是什么?是否在内存中复制原始数组? @Richard:它将创建一个新的 ArrayList 对象并从 String 数组转换,我猜内存量是以前的 3-5 倍。 public static当数组是对象数组时,则:
Object[] array = ..
Arrays.asList(array).indexOf(someObj);
另一种选择是org.apache.commons.lang.ArrayUtils.indexOf(...)
,它还具有基本类型数组的重载,以及采用起始偏移量的 3 参数版本。 (Apache 版本应该更高效,因为它们不需要创建临时的 List
实例。)
【讨论】:
为什么我总是忘记大多数收集方法也适用于数组使用asList
.... +1
使用 asList 的附带效果是什么?是否在内存中复制原始数组?
@Richard - 没有复制。 “asList”列表是原始数组的包装器。阅读 javadocs!【参考方案3】:
数组没有indexOf()
方法;但是,java.util.List
可以。所以你可以将你的数组包装在一个列表中并使用List
方法(add()
等除外):
output.add("1 2 3 4 5 6 7 8 9 10");
String bigger[] = output.get(i).split(" ");
int biggerWhere = Arrays.asList(bigger).indexOf("10");
【讨论】:
【参考方案4】:您可以使用java.util.Arrays.binarySearch(array, item);
这会给你一个项目的索引,如果有的话......
但请注意,在搜索之前需要对数组进行排序。
问候
【讨论】:
【参考方案5】:Java 数组中没有直接的 indexOf 方法。
【讨论】:
【参考方案6】:output.add("1 2 3 4 5 6 7 8 9 10");
你错过了 10 点后的"
。
【讨论】:
以上是关于字符串数组中的 indexOf的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript——数组的indexOf()方法在IE8中的兼容性问题
使用 push() 方法和 indexOf() 方法从 AngularJS1 中的数组中删除/检查重复的日期