繁体   English   中英

在查找字符串中的第一个非重复字符时找出字符值

[英]Figuring out the character value in finding first non repeated character in a string

我正在寻找以下字符串中的第一个非重复字符:

package com.tk.practice;

import java.util.HashMap;
import java.util.Map;

public class FirstNonRepeatedCharacter {

public static void main(String[] args) {


        String str = "stress";

        char[] ch = str.toCharArray();

        int length = ch.length;
        //System.out.println(length);
        for(int i = 0; i<length;i++){
                char character = str.charAt(i); 
                Map<Character, Integer> map = new HashMap<Character,Integer>();
                if(map.containsKey(character)){
                    map.put(character, map.get(character)+1);
                }
                else{
                    map.put(character, 1);
                }

                for(Map.Entry<Character, Integer> m : map.entrySet()){
                            //Integer ill = m.getValue();
                            //Character ch1 = m.getKey();
                            //if(ill == 1){

                                System.out.println("Key: "+m.getKey()+" Value: "+m.getValue());

                            //}


       }




}

}}

现在只是为每个字符打印一个值。 但是我试图理解以下内容:

if(map.containsKey(character)){
                        map.put(character, map.get(character)+1);
                    }

由于该value是整数值,那么为什么map.get(character)不会map.get(character)任何错误,因为map.get(character)应该检索字符,对而不是对值? 我当时在考虑使用getKey()但这会引发错误。 如果我有误解,请解释一下。

Map.get返回一个Integer因为这就是地图中的值。 由于映射中的键是字符,而值是整数,因此getKey将返回一个Characterget将返回一个Integer get在您提供的键上为您提供了价值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM