牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
输入描述:
每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。
输出描述:
输出一行一个数字表示完成所有料理需要多少种不同的材料。
思路:其实就是用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。
我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。