我正在努力解决hackerrank的一个特殊问题。
为了解决这个问题,我使用hashmap创建了一个字典,我想用这个人的名字搜索电话号码。如果有一个条目与该名称,打印与名称的号码,否则打印未找到。
public static void main(String []args){
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
Map<String,Integer> map= new HashMap<String,Integer>();
for(int i = 0; i < n; i++){
String name = scan.next();
int phone = scan.nextInt();
// Write code here
map.put(name,phone);
}
while(scan.hasNext()){
String s = scan.next();
// Write code here
if(map.containsKey(s)){
System.out.println(s+"="+map.get(s));
}
else{
System.out.println("Not Found");
}
}
scan.close();
}
我得到了所需的输出,但有一个额外的空行。例如,当我搜索名称'J'和'K'时,字典中只有J,我的输出是:
J=88888
Not Found
*empty line*
您正在使用System.out.println
打印推杆,因此,在您的消息之后将打印一行新行。
如果不希望出现这种行为,请使用System。出来打印
。
问候。
第一件事是,由于简单的打字错误,你在网上裁判中得到了错误的答案。你写道:
System.out.println("Not Found");
但是在线法官的要求是未找到
。所以,应该是:
System.out.println("Not found");
在这一点上,你会在网上得到正确的答案,这是真的。但是,在这种情况下,无论问题的标题暗示什么,都是一个真正的问题,即,你实际上在最后得到了一条额外的线。也许,在线法官在找到正确答案后忽略了额外的检查。
现在,为了解决这个问题,您的while循环应该是这样的:
while (in.hasNext()) {
String s = in.next();
if (map.containsKey(s))
System.out.print(s + "=" + map.get(s));
else
System.out.print("Not found");
if (in.hasNext())
System.out.println();
}
通过使用if语句进行额外检查,您将在除最后一行之外的所有输出之后打印新行。
问题内容: 我有以下代码: 控制台输出看起来像 我想在用户按下后删除文本。退格键无法做到。 问题答案: 这将在大多数unix和Windows终端中正常工作…它使用非常简单的ANSI转义。 请注意,在Windows上,您可能需要使用以下http://www.windowsnetworking.com/kbase/windowstips/windows2000/usertips/miscellaneo
我有一个主类,该类将输出打印到控制台。。。 例如,如果行中包含A和B,我需要打印“Apple” 我将在主方法中通过首先实例化该类的对象来实现这一点,即。 代码示例:
我一直在使用pandas导入CSV,但每次尝试使用它时,我都会得到一个随机的额外行,这会导致代码中的错误。我如何完全抹去这一行? 我用来导入它的代码是:import itertools import copy import networkx as nx import pandas as pd import Matplotlib.pyplot as plt import csv 我的表是一个简单的I
我是新来的希望你们能帮我。。。 我是java编程的初学者,我想我对这个问题有点不知所措。 我的程序运行得很好,除了一个让我恼火的小细节。我有一个JTable,第一列有一个按钮,可以从表中删除这一行。它工作得很好,除了当我试图删除表的最后一行时,按钮停留在那里,然后表冻结,我无法删除任何行,因为我收到了一个“越界异常”。但是,当我使用命令表时。getRowCount()); 在删除该行之前和之后,表
我有大量数据,需要清理。B列为关键列;如果B列中有空值,则可以删除该行的其余部分。 我在B列上排序,所有的空值都在表的底部。在C-BZ列中有数据,但在B中没有。我想自动识别B中最后一个非空值(假设它是单元格B3841),然后删除工作表底部的3842行。我的数据集每天都在变化。 下面的代码对B列进行排序,然后删除所有完全空的行。我还想删除在B列中为null但在C或D或任何其他行中可能有数据的行。
问题内容: 我试图弄清楚如何禁止在stdout上显示用户输入。 后跟任何打印语句将保留用户键入的内容。不会显示用户键入的内容,但会保留“ Password:”提示。 为了解决这个问题,我只想删除最后一行(这也会从行尾删除换行符)。 问题答案: 您可能可以使用VT100控制代码执行所需的操作。 可能是这样的: