解决方案 »

  1.   

    编译时提示的前18个错误,全部和Num.put(1,"1.T恤"); prices.put(1,"$20");
         Num.put(2,"2.网球鞋"); prices.put(2,"$50");
         Num.put(3,"3.网球拍");  prices.put(3,"$100");这几句话有关,如下:
    TestDemo.java:10: 错误: 需要<标识符>
             Num.put(1,"1.T恤"); prices.put(1,"$20");
                    ^
    TestDemo.java:10: 错误: 非法的类型开始
             Num.put(1,"1.T恤"); prices.put(1,"$20");
                     ^
    TestDemo.java:10: 错误: 非法的类型开始
             Num.put(1,"1.T恤"); prices.put(1,"$20");
      

  2.   

    上面的解决了,因为属性调用要写在方法内。
    新问题出现了:TestDemo.java:34: 错误: 对于Scanner(PrintStream), 找不到合适的构造器
                        int i=new Scanner(System.out).nextInt();
      

  3.   

    终于改好了
    import java.util.Scanner;
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Map;class Test
    {
    public  static Map<Integer,String> Num=new HashMap<Integer,String>();
    public  static Map<Integer,String> prices=new HashMap<Integer,String>();
    //  Num.put(1,"1.T恤"); prices.put(1,"$20");
    //     Num.put(2,"2.网球鞋"); prices.put(2,"$50");
    //     Num.put(3,"3.网球拍");  prices.put(3,"$100");
        
    public void print(String str)
    {
    System.out.println(str);
    }

    };
    public class TestDemo
    {
    public static void main(String args[])
    {
    Test test=new Test();
    test.Num.put(1,"1.T恤"); test.prices.put(1,"$20");
            test.Num.put(2,"2.网球鞋"); test.prices.put(2,"$50");
            test.Num.put(3,"3.网球拍");  test.prices.put(3,"$100");
    boolean bool=true;
    while(bool)
    {
        test.print("------------------");
    Collection coll=Test.Num.values();
        test.print(coll.toString());
        test.print("请输入要查找的商品:");
        int i=new Scanner(System.in).nextInt();
        test.print("你输入的数字是"+i);
    test.print("商品价格:"+Test.prices.get(i));
        test.print("是否继续查找Y/N ?");
                String again=new Scanner(System.in).nextLine();
    if(again.equals("N") || again.equals("n"))
    {
                   bool = false;
        }
    }

    }
    }