Java 如果在循环中未按预期工作,则
我从文本文件(“text.txt”)中读取行,然后将它们存储到树形图中,直到单词apply出现 但是,在执行此操作之后,我没有在树映射中希望的最后一行“4应用” text.txtJava 如果在循环中未按预期工作,则,java,loops,if-statement,Java,Loops,If Statement,我从文本文件(“text.txt”)中读取行,然后将它们存储到树形图中,直到单词apply出现 但是,在执行此操作之后,我没有在树映射中希望的最后一行“4应用” text.txt 1添加 3乘 4应用 6加上 扫描仪输入=新扫描仪(文件); while(input.hasNextLine()){ String line=input.nextLine(); 字符串[]divline=line.split(“”); 树映射值=新树映射(); 如果(!divline[1].equals(“apply”
1添加
3乘
4应用
6加上
扫描仪输入=新扫描仪(文件);
while(input.hasNextLine()){
String line=input.nextLine();
字符串[]divline=line.split(“”);
树映射值=新树映射();
如果(!divline[1].equals(“apply”))
{
value.put(Integer.valueOf(divline[0]),divline[1]);
}
其他的
{
value.put(Integer.valueOf(divline[0]),divline[1]);
打破
}
System.out.println(值);
}
您每次都在while循环中创建新的映射。在while循环之前输入以下代码
TreeMap<Integer, String> valores = new TreeMap();
TreeMap valores=newtreemap();
此外,还需要更正地图内容的打印。因此,您的最终代码可以是
Scanner input = new Scanner(file);
TreeMap<Integer, String> valores = new TreeMap();
while(input.hasNextLine()){
String line = input.nextLine();
String[] divline = line.split(" ");
if(!divline[1].equals("apply")){
valores.put(Integer.valueOf(divline[0]), divline[1]);
} else {
valores.put(Integer.valueOf(divline[0]), divline[1]);
break;
}
}
for (Entry<Integer,String> entry: valores){
System.out.println(entry.getKey() + "- "+entry.getValue());
}
扫描仪输入=新扫描仪(文件);
TreeMap valores=新的TreeMap();
while(input.hasNextLine()){
String line=input.nextLine();
字符串[]divline=line.split(“”);
如果(!divline[1].equals(“apply”)){
valores.put(Integer.valueOf(divline[0]),divline[1]);
}否则{
valores.put(Integer.valueOf(divline[0]),divline[1]);
打破
}
}
用于(条目:valores){
System.out.println(entry.getKey()+“-”+entry.getValue());
}
您正在为每一行创建一个新的“valores”TreeMap
,然后打印包含该行的TreeMap
。在“应用”的情况下,您也可以这样做,创建一个新的映射,将值放在那里-只有通过断开,您才能跳过System.out.println
部分
您需要将树映射的声明放在while之前。
4apply
被添加到valores
映射,但它不会被打印,因为您在打印语句之前打破了循环
此外,您可能需要将valores
map的创建移动到while
循环之前。以及循环后的打印
TreeMap<Integer, String> valores = new TreeMap();
while(input.hasNextLine()){
String line = input.nextLine();
String[] divline = line.split(" ");
if(!divline[1].equals("apply")){
valores.put(Integer.valueOf(divline[0]), divline[1]);
} else {
valores.put(Integer.valueOf(divline[0]), divline[1]);
break;
}
}
System.out.println(valores);
TreeMap valores=newtreemap();
while(input.hasNextLine()){
String line=input.nextLine();
字符串[]divline=line.split(“”);
如果(!divline[1].equals(“apply”)){
valores.put(Integer.valueOf(divline[0]),divline[1]);
}否则{
valores.put(Integer.valueOf(divline[0]),divline[1]);
打破
}
}
系统输出打印LN(valores);
没有“if循环”这样的东西。您可以放置valores.put(Integer.valueOf(divline[0]),divline[1])代码>外部deìf
TreeMap<Integer, String> valores = new TreeMap();
while(input.hasNextLine()){
String line = input.nextLine();
String[] divline = line.split(" ");
if(!divline[1].equals("apply")){
valores.put(Integer.valueOf(divline[0]), divline[1]);
} else {
valores.put(Integer.valueOf(divline[0]), divline[1]);
break;
}
}
System.out.println(valores);