HashMap的行为不符合汉字的预期

考希克·莱尔(Kaushik Lele)
China-中国,CN
Angola-安哥拉,AO
Afghanistan-阿富汗,AF
Albania-阿尔巴尼亚,AL
Algeria-阿尔及利亚,DZ
Andorra-安道尔共和国,AD
Anguilla-安圭拉岛,AI

在Java中,我正在从文件中读取以上文本,并创建一个映射,其中的键将是逗号之前的部分,而值将是逗号之后的区域代码。

这是代码:

public static void main(String[] args) {

    BufferedReader br;
    Map<String,String>  mymap = new HashMap<String,String>();
    try {
        br = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/IBM_ADMIN/Desktop/region_code_abbreviations_Chinese.csv"), "UTF-8"));
        String line;
        while ((line = br.readLine()) != null) {
           //System.out.println(line);
           String[] arr= line.split(",");
           mymap.put(arr[0], arr[1]);
        }

        br.close();
    } catch (IOException e) {
        System.out.println("Failed to read users file.");
    } finally {}

    for(String s: mymap.keySet()){
        System.out.println(s);
        if(s.equals("China-中国")){
            System.out.println("Got it");
            break;
        }
    }

    System.out.println("----------------");
    System.out.println("Returned from map  "+ mymap.get("China-中国"));

    mymap = new HashMap<String,String>();
    mymap.put("China-中国","Explicitly Put");
    System.out.println(mymap.get("China-中国"));
    System.out.println("done");
}

输出:

:
:
Egypt-埃及
Guyana-圭亚那
New Zealand-新西兰
China-中国
Indonesia-印度尼西亚
Laos-老挝
Chad-乍得
Korea-韩国
:
:
Returned from map  null
Explicitly Put
done

地图已正确加载,但是当我在地图上搜索“ China-中国”时-我没有得到该值。

如果我在地图上明确放置“ China-中国”,那么它将返回一个值。为什么会这样呢?

乌姆兹

检查您的资源文件是否不是UTF-8,例如UTF-8Y,并以BOM字节开头。但这只会推断出第一个值。如果您将测试从中间值更改为某个值,那么您是否有值?如果不是,那么这不是问题。

第二种可能性是您的源代码文件不是UTF-8。因此,您的资源文件和源代码文件的“ China-中国”字节序列不相等,并且不会得到匹配。但是您将该值显式地包含在源代码字节序列中,将找到它。

实际上,这不是HashMap的问题,而是字符或文件编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Coffeescript类的行为不符合预期

来自分类Dev

SSLContext模拟行为不符合预期

来自分类Dev

类型n的行为不符合预期

来自分类Dev

CancellationTokenSource的行为不符合预期

来自分类Dev

WinWaitActive函数的行为不符合预期

来自分类Dev

变量的行为不符合预期

来自分类Dev

isinstance()的行为不符合我的预期

来自分类Dev

jQuery remove()行为不符合预期

来自分类Dev

Excel OR函数的行为不符合预期

来自分类Dev

强行“替换”行为不符合预期

来自分类Dev

reactValuesToList行为不符合预期

来自分类Dev

CancellationTokenSource的行为不符合预期

来自分类Dev

memcached测试的行为不符合预期

来自分类Dev

类型n的行为不符合预期

来自分类Dev

Coffeescript类的行为不符合预期

来自分类Dev

角度`watch`的行为不符合预期

来自分类Dev

primaryValues的行为不符合预期

来自分类Dev

autocmd行为不符合预期

来自分类Dev

while循环的行为不符合预期?

来自分类Dev

WinWaitActive函数的行为不符合预期

来自分类Dev

VBA词典的行为不符合预期

来自分类Dev

MySQL查询的行为不符合预期

来自分类Dev

C ++指针的行为不符合预期

来自分类Dev

while(f) 行为不符合预期

来自分类Dev

Numpy 数组的行为不符合预期

来自分类Dev

Zip 的行为不符合预期

来自分类Dev

PowerShell - 返回行为不符合预期

来自分类Dev

const引用的指针行为不符合预期

来自分类Dev

为什么const_cast的行为不符合预期?