01-搜索一个字符数组中是否存在某个字符

01-题目:

请在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。

02-思路:

1.创建一个字符数组。
2.搜索该字符是否存在字符数组中,编写搜索方法。
3.判断字符数组中是否存在该字符

03-介绍:

1.valueOf:方法用于返回给定参数的原生 Number 对象值。 如:char[] str = { ‘a’, ‘b’, ‘c’, ‘a’ }; String s = String.valueOf(str); // s的值是 abca
2.indexOf:返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。 如:s.indexOf(“b”); // 表示:如果字符数组中存在b,则返回第一次出现b的下标索引,如果没有b,则返回-1

04-代码:

1-第一种方式:
package com.eleven.csdn0110;

/**
 * 1.请在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。
 * 2.要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。
 * 3.在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。
 * 
 * @author sywangu
 *
 */
public class OneDay {

	public static void main(String[] args) {
		// 创建一个字符数组
		char[] str = { 'a', 'a', 'c', '-', 'a' };
		// 搜索该字符是否存在字符数组中
		int index = search(str,'-');
		// 判断字符数组中是否存在该字符
		if (index == -1) {	// index为-1时,表示字符不存在
			System.out.println("该字符不存在");
		} else {
			System.out.println("字符在字符数组中第一次出现的位置" + index);
		}
	}

	// search方法
	private static int search(char[] aStr, char aIndex) {
		int index = -1;	// 将index的值初始化为-1
		if (aStr == null) {	// 如果str值为null,则抛出非法数据异常
			new IllegalArgumentException().printStackTrace();	// IllegalArgumentException非法数据异常
		} else {
			for (int i = 0; i < aStr.length; i++) {
				if (aIndex == aStr[i]) {	// 如果字符数组里面的字符和要搜索的字符一致
					index = i;	// 就将i的值赋值给index
					break;	// 满足条件,退出循环
				}
			}
		}
		return index;	// 打印index的值
	}
}
2-第二种方式(推荐):
package com.eleven.test;

/**
 * 1.请在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。
 * 2.要搜索的字符数组和字符都以参数形式传递传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。
 * 3.在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。
 * 
 * @author sywangu
 *
 */
public class OneDemoTest {
	public static void main(String[] args) {
		// 创建一个字符数组
		char[] str = { 'a', 'b', 'c', 'a' };
		// // 如果str值为null,则抛出非法数据异常
		if (str == null)
			throw new IllegalArgumentException();
		// valueOf() 方法用于返回给定参数的原生 Number 对象值
		String s = String.valueOf(str); // s的值是 abca
		// indexOf():返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
		System.out.println(s.indexOf("b"));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值