栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在 java 中查找字符串中的第一个非重复字符?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在 java 中查找字符串中的第一个非重复字符?

有多种方法可以找到它。
他们之中有一些是:

使用linkedHashMap
使用 indexOf 和 lastIndexOf 方法。

面试问题之一是“你将如何在 String 中找到第一个非重复字符。”
例如:
如果输入字符串是“analogy”,那么程序应该返回’n’
如果输入字符串是“easyest”,那么程序应该返回’a’
第一种方法:
我们将使用 linkedHashMap 在 String 中查找第一个非重复字符。

Algorithm:
循环遍历字符串时获取字符
将此字符放入 linkedHashMap 中并计数。如果字符已经存在,则将计数增加 1。
迭代时从 linkedHashMap 获取计数。如果计数为 1,则返回该字符,因为 linkedHashMap 维护插入顺序。
程序:

package org.arpit.java2blog.algo;import java.text.*;import java.util.*;import java.util.Map.Entry;public class GetFirstNonRepeatingCharacterMain { public static void main(String[] args) {  System.out    .println("First non repeated character for String analogy is : "      + getNonRepeatedCharacter("analogy"));  System.out    .println("First non repeated character for String easiest is : "      + getNonRepeatedCharacter("easiest")); } public static Character getNonRepeatedCharacter(String str) {  Map<Character, Integer> countCharacters = new linkedHashMap<Character, Integer>();  for (int i = 0; i < str.length() - 1; i++) {   Character c = str.charAt(i);   if (!countCharacters.containsKey(c)) {    countCharacters.put(c, 1);   } else {    countCharacters.put(c, countCharacters.get(c) + 1);   }  }  // As linkedHashMap maintains insertion order, first character with  // count 1 should return first non repeated character  for (Entry<Character, Integer> e : countCharacters.entrySet()) {   if (e.getValue() == 1)    return e.getKey();  }  return null; }}

当你运行上面的程序时,你会得到以下输出:

First non repeated character for String analogy is : nFirst non repeated character for String easiest is : a

第二种方法:
算法:
遍历字符串的每个字符。
如果 lastIndexOf 和 indexOf 返回相同的值,则它是字符串中的第一个非重复字符。
程序:

package org.arpit.java2blog.algopublic class GetFirstNonRepeatingCharacterMain{ public static void main(String[] args) {        System.out.println("First non repeated character for String analogy is : "+getNonRepeatedCharacter("analogy"));        System.out.println("First non repeated character for String easiest is : "+getNonRepeatedCharacter("easiest")); } public static Character getNonRepeatedCharacter(String str) {     char charaaray[]=str.toCharArray();       for (int i=0; i<str.length();i++)      {          if (str.lastIndexOf(charaaray[i]) == str.indexOf(charaaray[i]))    return charaaray[i];      }  return null; }}

当你运行上面的程序时,你会得到以下输出:

First non repeated character for String analogy is : nFirst non repeated character for String easiest is : a


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号