package com.itheima;
public class Test9
{
/**
* 9、 在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,
* 如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),
* 否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,
* 如果传入的数组为null,应抛出IllegalArgumentException异常。
* 在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,
* 例如,字符不存在,字符存在,传入的数组为null等。
*
* 思路:1.当数组为null的时候,创建异常对象,并将这个异常打印到控制台
* 2.当数组有值的时候,且能匹配到给定字符的情况,就遍历数组中的元素与给定的字符依次比较,
* 获得匹配时的索引.
* 3.当字符数组与给定的字符一一匹配都没有成功,那么就说明该字符不在字符数组里.只要满足
* 遍历过程中数组的最后一个元素与我们给定的字符不相同就可以了.
*/
public static void main(String[] args)
{
Test9 test9 = new Test9();
// 字符数组中匹配不到给定的字符
char c = 'c';
char[] ch = { 'z', 'w', 'w' };
test9.method(c, ch);
System.out.println("==========");
// 字符数组总匹配到给定的字符
char c1 = 'c';
char[] ch1 = { 'z', 'c', 'w' };
test9.method(c1, ch1);
System.out.println("==========");
// 字符数组为空
char c2 = 'c';
char[] ch2 = null;
test9.method(c2, ch2);
}
// 定义一个方法来满足题目的需求,用可变参数定义数组,正好应对不确定传入数组的长度情况
public void method(char c, char... ch)
{ // 当传入的数组为null
if (ch == null)
{ // 创建异常对象
IllegalArgumentException exception = new IllegalArgumentException();
// 将异常打印到控制台
exception.printStackTrace();
}
else
{
// 遍历数组
for (int i = 0; i < ch.length; i++)
{ // 当在字符数组中匹配到字符时
if (c == ch[i])
{
System.out.println("字符存在,位置为:" + i);
break;
}
// i+1==ch.length表示整个数组遍历完成,都没有匹配到需要的字符.
else if (i + 1 == ch.length)
{
System.out.println("字符不存在");
}
}
}
}
}
|
|