Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java映射匹配键_Java_Map - Fatal编程技术网

Java映射匹配键

Java映射匹配键,java,map,Java,Map,我面临的问题是: 我有一张包含字符串和字符串的地图。当我打印那张地图时,我能看到有一把钥匙 "0-8166-3835-7". 但当我试图得到它时,没有任何东西可以返回,就像没有找到匹配项一样。。。 我的代码: 我不明白问题出在哪里。。也许这有点像后缀的编码来自一个集合,而键来自一个映射?它们都是绳子。。别这么想。。!!! 所以你能帮忙吗 编辑:如果您发现代码很难阅读,我真的很抱歉:\n我会听从您的建议!! 但如果其他人也有同样的问题,解决办法就是布兰德在下面说的。。(我重新发布) 从文件中读取并

我面临的问题是: 我有一张包含字符串和字符串的地图。当我打印那张地图时,我能看到有一把钥匙 "0-8166-3835-7". 但当我试图得到它时,没有任何东西可以返回,就像没有找到匹配项一样。。。 我的代码:

我不明白问题出在哪里。。也许这有点像后缀的编码来自一个集合,而键来自一个映射?它们都是绳子。。别这么想。。!!! 所以你能帮忙吗

编辑:如果您发现代码很难阅读,我真的很抱歉:\n我会听从您的建议!! 但如果其他人也有同样的问题,解决办法就是布兰德在下面说的。。(我重新发布)


从文件中读取并存储在映射中的字符串中可能有一些空格。如果是这种情况,请在将值存储在映射中之前以及在查询相同字符串之前使用String.trim()布拉德3小时前


谢谢大家

我只是想补充一下我的评论,指出问题所在。在比较地图中的关键点时,必须非常小心空格和区分大小写。这些类型的问题通常发生在从文件读取数据时,因为读取的字符并不总是很明显。即使查看调试器whitepsace cna也可能是一个问题


在将数据存储到映射中之前,请始终尝试通过修剪前导和尾随空格来“规范化”数据。

您的代码不会显示IsbnFile的来源。。。如果您遵循正常的Java命名约定,那么您的代码也会更容易阅读……正如Jon所说:用小写字母编写变量,这样就不会被错误编码:-/阅读起来非常混乱。方法名也是一样,它们应该是小写的。您确实可能在编码方面有问题。确保以类似的方式创建密钥(不是从UTF-8读取一个密钥,而是从windows编码的文件读取另一个密钥)。从文件读取并存储在映射中的字符串中可能有一些空格。如果是这种情况,则在将值存储到映射中之前,以及在查询相同的字符串之前,请使用String.trim()。显示打印映射的代码并看到键。打印键时,用引号(或其他字符)将其括起来可能会有帮助因此,您可以查看是否包含您没有注意到的任何空白。
    //Open a stream to read from file with isbn's AND titles
    Scanner IsbnTitle = new Scanner(new FileReader("C:/Users/Proskopos/Documents/NetBeansProjects/ReadUrl/IsbnTitle.txt"));

    //Create a Map to save both ISBN's and Titles
    Map <String,String> IsbnTitleMap = new HashMap();

    while(IsbnTitle.hasNext()){
        String recordIsbnTitle = IsbnTitle.nextLine();
        UrlFunctions.AddToMap(Recognised , recordIsbnTitle, IsbnTitleMap);
    }
.....
.....
        Set IsbnSet = new HashSet();
    while (IsbnFile.hasNextLine()) {
        String isbn = IsbnFile.nextLine();
        IsbnSet.add(isbn);
    }

    //Create an Iterator for IsbnSet
    Iterator IsbnIt =IsbnSet.iterator();

String suffix = IsbnIt.next().toString();

    String OPACIALtitle = UrlFunctions.GetOpacTitle(suffix, IsbnTitleMap);
    static String GetOpacTitle(String opIsbn, Map IsbnTitle) {
    String OpacTitle = null;
    String isbn = opIsbn;
    Map isbnMap = IsbnTitle;
    System.out.println(isbn);
    if ( isbnMap.containsKey(isbn)){
        System.out.println("AAAAAAAAAAAAAAAA");
    }
    //String tade = isbnMap.get(isbn).toString();
    //System.out.println("*************" + tade);

    return OpacTitle;
}


    static void AddToMap(int Recognise, String recordIsbnfollowed, Map IsbnfollowedMap) {

    Map isbnsth = IsbnfollowedMap;
    String records = recordIsbnfollowed;
    int recs= Recognise;


    if (recs == 0 || recs == 3) {
    String isbn = records.substring(0, 10);
    String title = records.substring(10);
    isbnsth.put(isbn, title);
//        System.out.println(isbn);
        }else if (recs == 1) {
            String isbn = records.substring(0, 14);
            String title = records.substring(14);
            isbnsth.put(isbn, title);
//            System.out.println(isbn);
        }
    }