第九题:
- package com.itheima;
- /**
- * 9、 在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,
- * 则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。
- * 要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,
- * 应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测
- * 试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。
- */
- public class Test9 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- char[] ch = { 'a', 'b', 'c', 'd', 'e', 'c', 'a', 'q', '2', '9', '3' }; // 定义字符数组
- int i = isContainChar(ch, 'c'); // 测试字符存在
- int j = isContainChar(ch, 'C'); // 测试字符不存在
- System.out.println("字符存在测试:" + i + "\n字符不存在测试:" + j); // 打印结果
- isContainChar(null, 'c'); // 测试传入数组为null
- }
- public static int isContainChar(char[] ch, char c) {
- if (ch == null) // 如果传入的字符数组为空,则按要求抛出参数不合法异常
- throw new IllegalArgumentException("参数不合法");
- int count = -1; // 设置一个变量记录字符位置
- for (int i = 0; i < ch.length; i++)
- // 遍历数组,寻找字符
- if (ch[i] == c) { // 如果找到了,则记录角标,并跳出循环;没找到则不会设置count,count依旧为-1
- count = i;
- break;
- }
- return count; // 按要求返回
- }
- }
复制代码
|