在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递
2015-08-21 17:10
1086 查看
在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。
package com.itheima; import java.util.Scanner; /** * 第9题:在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符, 如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算), * 否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null, * 应抛出IllegalArgumentException异常。 在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确, * 例如,字符不存在,字符存在,传入的数组为null等。 * * 分析: * 创建一个对象 * 定义一个输入对象,输入字符 * 定义一个字符来做为比较的值 * 把字符串转换成字符数组 * 调用方法 * 判断数组是不是null,如果是返回IllegalArgumentException异常 * 使用for对这个数组进行遍历 * 如果相等,返回这个索引号 * 输出这个索引 * 定义一字符数组,在定一个字符 调用方法 * * 创建方法, 使用 * */ public class Test9 { public static void main(String[] args) { // 创建一个对象 Scanner sc = new Scanner(System.in); System.out.println("请输入字符串:"); // 输入字符串,做为源字符串 String str = sc.nextLine(); // 定义一个字符来做为比较的值、 char ch = 'e'; // 把字符串转换成字符数组、 char[] chs = str.toCharArray(); // 调用查找方法、并把这个方法的返回索引赋值给int类型存储 int num = check(chs, ch); // 输出索引 System.out.println("比较的字符是:"+"e"+"\n索引号是:"+num); } /** * 查找方法 * @param chs * @param ch * @return */ private static int check(char[] chs, char ch) { // 如果这个数组为Null则抛出IllegalArgumentException异常 if(chs==null){ throw new IllegalArgumentException("数组不能为空!"); } // 遍历数组 for (int x = 0; x < chs.length; x++) { // 如果这个数组和这个比较的字符相等返回这这个索引号 if (chs[x] == ch) { return x+1; } } // 否则返回-1 return -1; } }
相关文章推荐
- CSS3中Media Queries
- linux服务器检测工具
- 常用算法设计思想之一:动态规划算法
- caffe SSP(Spatial Pyramid Pooling) 分析,
- C语言 字节对齐
- U3D DrawCall优化手记 (DrawCall与渲染顺序)
- 在项目中,多个方法会调用相同的sql语句,怎么解决各个方法的不同sql查询,解决冲突。
- FOR XML PATH 应用及其反向分解
- hdu5410
- exynos4412电路OrCAD问题
- jdbc ,FetchSize
- 编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
- 关于startUML中各种连线这间的关系
- 旋转数组的最小数字
- 线程的同步互斥之事件对象(Event)
- 单一控制器实现员工信息管理
- qt编译mysql驱动插件
- Android 自动注释,导入模板文件
- Linux 自学命令
- 产品新人应该学会的几点坚持