Java 哈希映射记录值,但我无法调用这些值
首先,我的代码是:Java 哈希映射记录值,但我无法调用这些值,java,hashmap,Java,Hashmap,首先,我的代码是: import java.io.FileNotFoundException; import java.util.Scanner; import java.util.HashMap; import java.util.Map; import java.util.Locale; import java.util.Arrays; // Updated file with my own code public class TextExcel { public static
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;
import java.util.Locale;
import java.util.Arrays;
// Updated file with my own code
public class TextExcel {
public static void main(String[] args) {
//command loop:
Scanner sc = new Scanner(System.in);
String userinput;
String[] arrOfStr;
userinput = sc.nextLine();
Map<String, String> cells = new HashMap<String,String>();
while(!(userinput == "quit")) {
if(userinput.contains("=")) {
arrOfStr = userinput.split("=");
cells.put(arrOfStr[0], arrOfStr[1]);
}
if(userinput.contains("cell")) {
arrOfStr = userinput.split(" ");
cells.get(arrOfStr[1]);
System.out.println(cells.get(arrOfStr[1]));
}
userinput = sc.nextLine();
}
System.exit(0);
}
}
虽然“退出”不起作用不是我的主要问题,但我也希望能帮助我解决这个问题。如何使这些值可调用
PS我在Hashmap上做了调试,值和键都被记录下来,但由于某种原因调用名称会返回null。split(=)将“A1=hi”变成[“A1”,“hi”](注意空格),split(“”)将“cell A1”变成[“cell”,“A1”]。“A1”和“A1”是两个不同的值。可以通过调用trim()或在拆分的正则表达式模式中包含空格来修复它
安德烈亚斯的回答!谢谢你,伙计。在你的第二个if语句中,
arrOfStr[1]
的值是多少?在第一条if语句中存储的键的值是多少?split(“=”
将“A1=hi”
转换为[“A1”,“hi”]
(注意空格),split(“”
将单元格A1”
转换为[“单元格”,“A1”]
)<代码>“A1”和“A1”
是两个不同的值。您可以通过调用trim()
或在拆分的正则表达式模式中包含空格来修复它。输入quit
确实有效,因为您需要学习。如果我输入“A1=cell”
,会发生什么?不要使用魔法值或魔法字符串!我不赞成最后一次修理。最后,您不想比较空白。修剪文本周围的空白通常是更好的选择。
----jGRASP exec: java TextExcel
A1 = hi
cell A1
null
quit
quit
quit
>:(
----jGRASP: process ended by user.