编程题:下厨房

牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。

输入描述:

每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。

输出描述:

输出一行一个数字表示完成所有料理需要多少种不同的材料。
示例1

输入

复制
BUTTER FLOUR
HONEY FLOUR EGG

输出

复制
4

思路:其实就是用Set来存储材料就行了,因为Set的元素唯一性,不可重复性。由于不确定需要输入多少行,所以用Scanner的hasNext()方法。

代码:

package net.stxy.one.controller;

import java.util.*;

/**
 * Created by ASUS on 2018/5/29
 *
 * @Authod Grey Wolf
 */
public class Test1 {
    public static void main(String[] args) {
        Test1 test1=new Test1();
      
        test1.sys1();
    }

    private void sys1() {
        Scanner scanner=new Scanner(System.in);

        Set<String> stringSet=new HashSet<String>();
        while (scanner.hasNext()){
            stringSet.add(scanner.next());
        }
        System.out.println("需要的材料有:"+stringSet+"共"+stringSet.size()+"种");
    }

  

}

效果:

BUTTER FLOUR
HONEY  FLOUR EGG
^D
需要的材料有:[HONEY, EGG, BUTTER, FLOUR]共4种

注:因为hasNext()方法是一直等待输入的,我用的工具是IDEA,采用快捷键ctrl+d结束输入,所以显示^D。

我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。

猜你喜欢

转载自blog.csdn.net/weixin_39220472/article/details/80503809