网易笔试交流

谁知道java如何判断多行字符串输人(不知道行数),然后直接输出结果,这样的代码怎么写?比如笔试中下厨房问题。题目简单,我毁在这上了。
全部评论
我用BufferedReader的ready()方法判断搞定的 public class Main { private static String regex = "\\s"; public static void main(String[] args) throws IOException { Set<String> set = new HashSet<String>(); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); for (int i = 0; i < 50; i++) { if (in.ready()) { String text = in.readLine(); String[] arr = text.split(regex); for (String val : arr) { set.add(val); } } else { break; } } System.out.println(set.size()); in.close(); } }
点赞 回复 分享
发布于 2016-08-02 22:30
while(in.hasNextLine()) { } 测试案例是通过文件读取的,到了文件尾部会自动停止的,在控制台上无法手动控制停止
点赞 回复 分享
发布于 2016-08-02 22:11
我是这么写的: string temp; try(){ while(!(temp=in.nextLine()).equals){     写上很简单的程序 } }catch (Exception e ) {    / / TODO: handle exception } syso 然后就过了,也不晓得网易怎么想的,出这种题,感觉好菜。
点赞 回复 分享
发布于 2016-08-02 22:15
/根据同学们的意思,应该以下两种方法可以 //测试用例最后一行是回车键,这样来判断终止吧。我是这样猜的。现在没法验证了。。 1: BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String line; while(!(line=br.readLine()).equals("")){ System.out.println(line); } 2: Scanner in = new Scanner(System.in); String line; while(!(line=in.nextLine()).equals("")){ System.out.println(line); }
点赞 回复 分享
发布于 2016-08-03 12:12
while( scan.hasNext())
点赞 回复 分享
发布于 2016-08-02 22:07
同想知道
点赞 回复 分享
发布于 2016-08-02 22:08
很多题目输入都有告诉你多少行输入的。但是有些题目 你没办法知道 那么只能看看  Scanner 的 hasNext..系列的函数  支持呦 hasNextLine() hasNextFloat() hasNextInt(). 返回boolean 值  用此来判断
点赞 回复 分享
发布于 2016-08-02 22:09
不可能实现的,你是刚刚做题目的时候一直在纠结吧? 其实就是while(in.hasNext()) 按道理来说确实奇怪,但是我刚刚这样改题目就通过了。 这就是太少在OJ上刷题的后果吧。。
点赞 回复 分享
发布于 2016-08-02 22:11
想说没通过就算0分的吗
点赞 回复 分享
发布于 2016-08-02 22:12
变成第二道是不是描述不清楚,哪个算地牢终点实在没弄明白啊
点赞 回复 分享
发布于 2016-08-02 22:12
你手动是不好模拟的,测试用例的输入末尾会有EOF的,大胆用Scanner就行
点赞 回复 分享
发布于 2016-08-02 22:21
同求,这个题题干没有说是从文件中读的吧?
点赞 回复 分享
发布于 2016-08-02 22:26
唉,我也挂了这题,太坑了。。 while(input.hasNextLine()) {     str = input.nextLint();     if(str == null || str.equals("")) break;     ... } 也是不行。。一直卡在查询结果
点赞 回复 分享
发布于 2016-08-02 22:31
谁把题目记下来了,分享一下吧,我去找个玩儿ACM的问问,问到了给大家分享,不想再被输入搞得不要不要的了
点赞 回复 分享
发布于 2016-08-03 11:58
同样死在了这题上,一直不知道什么时候才改结束,又没有行数。。。题目跟之前不太一样,自己经验又比较少,哎
点赞 回复 分享
发布于 2016-08-03 12:26
import java.util.HashSet; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); HashSet<String> set = new HashSet<String>(); while (in.hasNext()) {//注意while处理多个case set.add(in.next()); } System.out.println(set.size()); } }
点赞 回复 分享
发布于 2016-08-03 12:49
已废,也是楼主这问题,然后前两道题没做,直接搞的第三道,废了两个多小时,只有40%的通过率。。。想死的心都有了。还不如直接安心先搞第一道了。。。
点赞 回复 分享
发布于 2016-08-03 13:06

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
11-24 11:23
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
8
分享
牛客网
牛客企业服务