本文介绍了找到阵列中使用Java的子指数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想返回用户输入使用Java的字符数组字符串的索引。数组初始化,炒,然后搜索。我是新来的这一点,并试图用没有成功两种不同的方法。我是什么俯瞰?先谢谢了。
方法1:
进口java.lang.Math中;
进口java.util.Scanner中;
进口java.util.Arrays中;
进口的java.util.List;
进口java.util.Collections中;公共类ArrayRandomChar {
公共静态无效的主要(字串[] args){
//创建一个字符数组:
字符[] anArray = {'P','A','P','A','B','E','A','R'};
对于(CHAR CH:anArray)
System.out.print(CH +);
的System.out.println(); //创建从阵列和洗牌名单
清单<性格> ALIST = Arrays.asList(anArray);
Collections.shuffle(ALIST);
System.out.print(ALIST);
的System.out.println(); //带回到数组
对象ob [] = aList.toArray();
对于(CH对象:anArray)
System.out.print((字符)CH +); //用户输入
扫描仪输入=新的扫描仪(System.in);
串字母= input.next();
的System.out.println(函); //返回字母索引,-1,如果不包含
INT RETVAL = aList.IndexOf(函);
的System.out.println(RETVAL); }
}
问题:运行文件并输入一个字母时, 1 返回即使列表包含字母
方法二:
公共类ArrayRandomChar {
公共静态无效的主要(字串[] args){ //创建一个字符数组:
字符[] anArray = {'P','A','P','A','B','E','A','R'};
对于(CHAR CH:anArray)
System.out.print(CH +);
的System.out.println(); //创建从数组列表:
清单<性格> ALIST = Arrays.asList(anArray);
Collections.shuffle(ALIST);
System.out.print(ALIST);
的System.out.println(); //创建数组列表
对象ob [] = aList.toArray();
对于(CH对象:anArray)
System.out.print((字符)CH +); //用户输入
扫描仪输入=新的扫描仪(System.in);
串字母= input.next();
INT指数= Arrays.binarySearch(anArray,字母);
的System.out.println(〜指数);
的System.out.println(函); }
}
这引发异常:
java.lang.ClassCastException:java.lang.String中不能被强制转换为java.lang.Character中
在java.lang.Character.compareTo(Character.java:101)
在java.util.Arrays.binarySearch0(Arrays.java:2001)
在java.util.Arrays.binarySearch(Arrays.java:1943)
在ArrayRandomChar.main(ArrayRandomChar.java:32)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
解决方案
的 这将解决这一问题。的
方法1:
INT RETVAL = aList.indexOf(letter.charAt(0));
方法二:
INT指数= Arrays.binarySearch(anArray,letter.charAt(0));
问题是,你有一个字符数组 ALIST
和信
是一个字符串,因此它搜索字符串
字符数组中为止。它可以有可能导致 ClassCastException异常
或字符串没有找到。
这篇关于找到阵列中使用Java的子指数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!