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.