java 问题 在线等答?

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:45:22
请在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,
如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。

class chazhao
{
public static void main(String args[])
{
char[] arr = {'a','b','c','d','e','f'};
searchNum(arr,'c');
}
static void searchNum(char[] arr,char a)
{
for(int i=0;i<arr.length;i++)
{
if(arr[i] == a)
{
System.out.println(a + "第一次出现的位置是" + i);
}

else retunrn -1;<<-------说是空类型不能有返还类型,
} 哪为大侠能告诉我怎么返还-1 吗?
}
}

你这个程序是不是错了?应该有返回值,函数的返回类型应该是int,不是void,感觉你理解错了。应该是这样:

class chazhao{
public static void main(String args[]){
char[] arr = {'a','b','c','d','e','f'};
int i=searchNum(arr,'c');
if(i<0) System.out.println("没有这个字符");
else System.out.println(a + "第一次出现的位置是" + i);
}

static int searchNum(char[] arr,char a){
for(int i=0;i<arr.length;i++)
if(arr[i]==a) return i;
return -1;
}
}

最好是程序只执行逻辑和计算, 不进行打印, 这要, 添加一个返回值, 返给主程序处理显示信息:
class chazhao {
public static void main(String args[]) {
char[] arr = { 'a', 'b', 'c', 'd', 'e', 'f' };
char ch = 'c';
int sign = searchNum(arr, ch);
if (sign == -1) {
System.out.println("没有找到" + ch);
} else {
System.out.println(ch + "第一次出现的位置是" + sign)