java 命令行参数问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:23:59
class check
{
public void find(String a)
{
String b[]={"张三","李四","王二麻子","徐大娘"};
for(int i=0;i<b.length;i++)
{
if(b[i]==a)
System.out.println("你要找的人有!");
}
System.out.println("没有");
}
}
class UseMain
{
public static void main(String args[])
{
check t=new check();
t.find(args[0]);
System.out.println(args[0]);
}
}
这样以后在命令行输入"张三",怎么输出还是没有?
交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。

陈其含 19:21:41
作业:
import java.util.*;
class a
{
String w;
String q[]={"路飞","佐罗","香吉士","娜美","乌索普"};
String ss()
{
Arrays.sort(q);
int e=Arrays.binarySearch(q,w);
return e<0?"不在本公司":"在本公司";
}
}
class b
{
public static void main(String args[]

“没有” 一定会输出的。
if语句判断完后,System.out.println("没有");这条语句会继续执行啊。应该写成这样:
for(int i=0;i<b.length;i++){
if(b[i]==a){
System.out.println("你要找的人有!");
}else{
System.out.println("没有");
}
}

if(b[i]==a)
这句有错误,不是这样用的,直接if(b[i]==a)比较的是b[i]和a对象是否相等,即比较内存地址的,肯定不等,所以应该这样if(b[i].equals(a)),这样才是比较值。
帮你改了下,还有别的小错误:
class check {
public void find(String a) {
String b[] = { "张三", "李四", "王二麻子", "徐大娘" };
boolean m = false;
for (int i = 0; i < b.length; i++) {
if (b[i].equals(a)) {
System.out.println("你要找的人有!");
m = true;
}
if (m == false)
System.out.println("没有");
}

}
}

class New {
public static void main(String args[]) {
check t = new check();
t.find(args[0]);
System.out.println(args[0]);