java实现查找第一个只出现一次的字符

互联网 19-11-29

问题:

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)

相关视频教程推荐:java在线教程

解决思路:

题目要求很明确,就是遍历字符串,并且给字符计数,计数之后,找到计数为1的字符即可。很明显这需要用到hashmap,key就是字符串中的各个字符,而value就是这个字符在字符串中出现的次数。

代码如下:

import java.util.LinkedHashMap; public class Solution {     public int FirstNotRepeatingChar(String str) {         int len = str.length();         LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();         for (int i = 0; i < len; i++) {             char c = str.charAt(i);             Integer val = map.get(c);             map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue);         }         Character resultKey = null;         for (Character c : map.keySet()){             if (map.get(c) == 1){                 resultKey = c;                 break;             }         }         for (int i = 0 ;i < len; i++){             if (str.charAt(i) == resultKey){                 return i;             }         }                return -1;     } }

相关文章教程推荐:java快速入门

以上就是java实现查找第一个只出现一次的字符的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 字符
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:JAVA继承中子父类的构造方法

相关资讯