2013-07-08 72 views
0

我应该做一个程序,输入三个参数,这些参数稍后将被计算。第一个和第三个参数是字符串格式的数字(例如“3”),而第二个参数是操作(例如“ - ”“+”)。一切工作正常,除非我使用“*”操作。我试图在通过解析器函数时打印字符串,因为这是发生错误的地方,它会打印“.project”而不是字符串格式的数字。为什么当我尝试打印字符串时,我的程序打印“.project”?

static int converter(String x) 
{ 
    System.out.println(x); 
    int value = 0; 
    String zero = "0"; 
    String one = "1"; 
    String two = "2"; 
    String three = "3"; 
    String four = "4"; 
    String five = "5"; 
    String six = "6"; 
    String seven = "7"; 
    String eight = "8"; 
    String nine = "9"; 
    String ten = "10"; 
    String eleven = "11"; 
    String twelve = "12"; 
    String thirteen = "13"; 
    String fourteen = "14"; 
    String fifteen = "15"; 
    String sixteen = "16"; 
    String seventeen = "17"; 
    String eighteen = "18"; 
    String nineteen = "19"; 
    String twenty = "20"; 
    String thirty = "30"; 
    String forty = "40"; 
    String fifty = "50"; 
    String sixty = "60"; 
    String seventy = "70"; 
    String eighty = "80"; 
    String ninety = "90"; 
    if(x.compareTo("zero")==0) 
     value = Integer.parseInt(zero); 
    else if(x.compareTo("one")==0) 
     value = Integer.parseInt(one); 
    else if(x.compareTo("two")==0) 
     value = Integer.parseInt(two); 
    else if(x.compareTo("three")==0) 
     value = Integer.parseInt(three); 
    else if(x.compareTo("four")==0) 
     value = Integer.parseInt(four); 
    else if(x.compareTo("five")==0) 
     value = Integer.parseInt(five); 
    else if(x.compareTo("six")==0) 
     value = Integer.parseInt(six); 
    else if(x.compareTo("seven")==0) 
     value = Integer.parseInt(seven); 
    else if(x.compareTo("eight")==0) 
     value = Integer.parseInt(eight); 
    else if(x.compareTo("nine")==0) 
     value = Integer.parseInt(nine); 
    else if(x.compareTo("ten")==0) 
     value = Integer.parseInt(ten); 
    else if(x.compareTo("eleven")==0) 
     value = Integer.parseInt(eleven); 
    else if(x.compareTo("twelve")==0) 
     value = Integer.parseInt(twelve); 
    else if(x.compareTo("thirteen")==0) 
     value = Integer.parseInt(thirteen); 
    else if(x.compareTo("fourteen")==0) 
     value = Integer.parseInt(fourteen); 
    else if(x.compareTo("fifteen")==0) 
     value = Integer.parseInt(fifteen); 
    else if(x.compareTo("sixteen")==0) 
     value = Integer.parseInt(sixteen); 
    else if(x.compareTo("seventeen")==0) 
     value = Integer.parseInt(seventeen); 
    else if(x.compareTo("eighteen")==0) 
     value = Integer.parseInt(eighteen); 
    else if(x.compareTo("nineteen")==0) 
     value = Integer.parseInt(nineteen); 
    else if(x.compareTo("twenty")==0) 
     value = Integer.parseInt(twenty); 
    else if(x.compareTo("thirty")==0) 
     value = Integer.parseInt(thirty); 
    else if(x.compareTo("forty")==0) 
     value = Integer.parseInt(forty); 
    else if(x.compareTo("fifty")==0) 
     value = Integer.parseInt(fifty); 
    else if(x.compareTo("sixty")==0) 
     value = Integer.parseInt(sixty); 
    else if(x.compareTo("seventy")==0) 
     value = Integer.parseInt(seventy); 
    else if(x.compareTo("eighty")==0) 
     value = Integer.parseInt(eighty); 
    else if(x.compareTo("ninety")==0) 
     value = Integer.parseInt(ninety); 
    else { 
     System.out.println("Error."); 
     System.exit(0); 
    } 
    return value; 
} 

如果我输入“*”而不是“*”,程序运行正常。

+0

这是什么语言?只是好奇。 – SamHuckaby

+0

@SamHuckaby爪哇 – 2562166

+2

为什么说'Integer.parseInt(一)'而不是'1'?为什么不用'x.equals(“one”)'而不是'compareTo'来检查字符串的相等性? – user2357112

回答

0

因为当你调用你的程序时,shell扩展了通配符。

考虑与之相似

之间

dir *.txt 

java MyProg.class 2 * 3 
星号将目录中的所有文件被替换。

相关问题